使用 WebView 构建 android 应用程序,遇到问题。
我想将一个用 react.js
构建的单页应用程序放入 WebView,并在通过 shoudOverrideUrlLoading()
加载页面之前控制它在更改 url 上> 方法。但是 shoudOverrideUrlLoading()
从未被调用。
但是,如果是非单页应用,它就可以正常工作。
是不是WebView和SPA之间的问题?我猜是的,但没有引用资料。
最佳答案
shouldOverrideUrlLoading()
仅在renderer initiated 导航时被调用。这基本上意味着:
- 用户点击了一个链接
- 页面上的 JS 单击链接或以其他方式尝试导航(例如,
window.location.href
) - 一些其他导航的 HTTP 重定向(一些 3xx HTTP 代码)
与呈现器启动的导航相反的是浏览器启动 导航。这将包括任何 loadUrl()
/loadData()
/etc。方法 -- shouldOverrideUrlLoading()
不会为这些调用。
单页应用程序无法导航,因此不调用 API。您可以使用 addJavascriptInterface()
研究解决方案,其中用户点击会触发对注入(inject)的 JavascriptInterface 的方法调用(而不是直接调用 AJAX)。
关于android - 在 SPA 的情况下不调用 shouldOverrideUrlLoading 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54067458/