我有一个带有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();
...
}
}
如何避免崩溃?
谢谢!
答案 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以查看是否有任何代码违反规则。