使用WebView构建android应用,遇到了问题。
我想将一个用react.js
构建的单页面应用程序放到WebView中,并在通过shoudOverrideUrlLoading()
方法加载页面之前通过跟踪URL对其进行控制。但是shoudOverrideUrlLoading()
从未被调用。
但是,对于非单页面应用程序,它可以正常工作。
WebView和SPA之间是否有问题?我猜应该是,但是没有参考。
答案 0 :(得分:1)
shouldOverrideUrlLoading()
仅用于渲染器启动导航。这基本上意味着:
window.location.href
)与渲染器启动的导航相反的是浏览器启动的导航。这将包括任何loadUrl()
/ loadData()
/ etc。方法-shouldOverrideUrlLoading()
不会被调用。
单页应用程序无法导航,因此为什么不调用API。您可以改为使用addJavascriptInterface()
研究一种解决方案,其中用户单击将触发对注入的JavascriptInterface的方法调用(而不是直接调用AJAX)。