我在里面有一个带有WebView的片段。我添加了一个具有此方法的自定义WebAppInterface
@JavascriptInterface
public void submitCorrect() {
Log.d("SUBMIT", "submit");
getActivity().onBackPressed();
//getActivity().getFragmentManager().popBackStack();
}
调试我看到该方法被调用但是,我不知道为什么,onBackPressed或popBackStack都没有工作。有什么建议?
或许完成活动将起作用:
@JavascriptInterface
public void submitCorrect() {
Log.d("SUBMIT", "submit");
Activity activity = getActivity();
if (activity != null)
activity.finish();
}
问题是,在WebView Thread上调用onBackPressed方法,你应该在主线程中调用它。这就是它无法正常工作的原因。
尝试更改以下代码:
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
getActivity().onBackPressed();
}
});