调用Intent时,带有JavascriptInterface的Webview崩溃

时间:2014-01-24 01:54:20

标签: android android-fragments webview youtube-api

我有一个带有webview的应用程序,它有一个自定义的JavascriptInterface。结论如下:

class CustomWebView extends WebView{ 
   public void prepare(){
      this.addJavascriptInterface(new Interface(this.inner_c), "ifc");
   }
}

在javascript上从这个接口调用一个方法,它执行以下操作:

Intent intent = YouTubeStandalonePlayer.createPlaylistIntent((Activity) mContext, "key", "playlist");
mContext.startActivity(intent);

调用intent后,现在在后台的应用程序崩溃,引用另一个文件中以下行的NullPointerException:

public class MiscellaneousFragment extends Fragment implements PageActionListener
{
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
    {
        mContext = container.getContext();
        ...
    }   
}

如何避免崩溃?

谢谢!

2 个答案:

答案 0 :(得分:0)

你可以使用它添加到你的Interface.java

    new Handler.post(new Runnable() { 
        public void run() { 
              Intent intent = YouTubeStandalonePlayer.createPlaylistIntent((Activity) mContext, "key", "playlist");
          mContext.startActivity(intent);
        } 
    }); 

答案 1 :(得分:0)

请注意,在主UI线程中不执行JavascriptInterface,而在Android中,必须在主线程中调用某些操作(例如更新视图)。因此,您可以检查JavascriptInterface以查看是否有任何代码违反规则。