WebView中的WebAppInterface不会调用onBackPressed

问题描述 投票:1回答:2

我在里面有一个带有WebView的片段。我添加了一个具有此方法的自定义WebAppInterface

@JavascriptInterface
public void submitCorrect() {
   Log.d("SUBMIT", "submit");
   getActivity().onBackPressed();
   //getActivity().getFragmentManager().popBackStack();
}

调试我看到该方法被调用但是,我不知道为什么,onBackPressed或popBackStack都没有工作。有什么建议?

android android-webview
2个回答
1
投票

或许完成活动将起作用:

@JavascriptInterface
public void submitCorrect() {
   Log.d("SUBMIT", "submit");
   Activity activity = getActivity();
   if (activity != null) 
       activity.finish();
}

1
投票

问题是,在WebView Thread上调用onBackPressed方法,你应该在主线程中调用它。这就是它无法正常工作的原因。

尝试更改以下代码:

getActivity().runOnUiThread(new Runnable() {
            @Override
            public void run() {
                getActivity().onBackPressed();
            }
        });
© www.soinside.com 2019 - 2024. All rights reserved.