WebView中的WebAppInterface不会调用onBackPressed

时间:2017-04-07 15:14:52

标签: android android-webview

我有一个内置WebView的片段。我添加了一个具有此方法的自定义WebAppInterface

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

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

2 个答案:

答案 0 :(得分:1)

也许完成活动会起作用:

//routes.tsx
const auth = new AuthService();

export default <Route component={ Layout }>
    <Route path='/login' components={{body:Login}}
</Route>;

//layout.tsx
export interface LayoutProps {
    body: React.ReactElement<any>
}

答案 1 :(得分:1)

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

尝试按以下方式更改代码:

getActivity().runOnUiThread(new Runnable() {
            @Override
            public void run() {
                getActivity().onBackPressed();
            }
        });