我有一个带有自定义JavaScriptInterface的WebView的应用程序。连接如下:
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);
一旦调用了意图,现在正在背景中的应用程序崩溃,涉及下一行的NullPoInterException从另一个文件:
public class MiscellaneousFragment extends Fragment implements PageActionListener
{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
mContext = container.getContext();
...
}
}
如何避免崩溃?
谢谢!
请注意,在主UI线程中未执行JavascriptInterface
,而在Android中,必须在主线程中调用某些操作(例如更新视图)。因此,您可以在JavaScriptInterface中进行检查以查看是否违反规则。
您可以将其添加到您的interface.java
new Handler.post(new Runnable() {
public void run() {
Intent intent = YouTubeStandalonePlayer.createPlaylistIntent((Activity) mContext, "key", "playlist");
mContext.startActivity(intent);
}
});