我正在尝试创建一个混合的react原生应用程序来在webviews中托管我的网站内容。如下所示:Supreme App
我想要实现的一件事是:当<a href>链接在我的网站上被点击时,而不是webview只显示新链接的内容,我希望应用程序推送一个新页面,并在新页面中显示新链接内容,这样我就可以保持良好的页面背栈,感觉更像是原生应用程序(对于每个导航,都有一个新页面)。
我想知道如何检测链接点击,推送一个新的页面,而不是让webview做默认的链接导航。谢谢!
发布于 2019-05-26 22:33:35
您可以使用WebView prop onNavigationStateChange来检测url中的更改。
单击<a>后,webview将重定向,onNavigationStateChange将触发。您可以使用此回调在应用中推送新的屏幕。
例如:
<WebView
ref={r => this.webview = r}
style = {{marginTop : 0}}
onNavigationStateChange={this._onNavigationStateChange}
source = {{uri: 'https://www.your-url.com' }}
/>
_onNavigationStateChange=(webViewState)=>{
let newUrl = webViewState.url
/*Your navigation logic*/
}https://stackoverflow.com/questions/56286208
复制相似问题