Android webview中的ReactJS应用程序 - 按后退按钮关闭应用程序

时间:2017-09-15 22:20:22

标签: android reactjs react-router

我正在使用react-dom 15.3.2和react-router ^ 4.2.0。注意:我使用的是ReactJS,而不是React-Native。

我有一个带导航链接的简单应用,它定义了以下链接:

<Link to="/contactus">
  Contact Us
</Link>
<Link to="/faq">
  FAQ
</Link>

这些路由已定义并在浏览器中正常运行。我可以去一个页面,按回来,一切都按预期工作。

但是我试图将我的网站包装到Android WebView中,这样我就可以创建一个应用程序。

    webView = (WebView) findViewById(R.id.webView);
    webView.getSettings().setJavaScriptEnabled(true);
    webView.loadUrl(myWebsiteURL);

问题在于,当我按下后退按钮会立即关闭应用程序时,它不会像在浏览器上一样运行“页面历史记录”。

1 个答案:

答案 0 :(得分:2)

您必须覆盖活动的默认行为,并直接调用webview。

@Override
public void onBackPressed() {
    if (webView.canGoBack()) {
        webView.goBack();
    } else {
        super.onBackPressed();
    }
}

参考:https://stackoverflow.com/a/37673643/1052581