我正在使用 WebView 开发一个反应本机应用程序。 这是网页视图的代码:
<WebView
ref={webView}
onLoad={onLoad}
onMessage={() => {}}
originWhitelist={["*"]}
source={{ uri: PLATFORM_URL }}
onNavigationStateChange={onNavigationStateChange}
/>
我想在单击某些按钮时阻止网络视图打开浏览器。 特别是,我在目标空白上苦苦挣扎,在 iOS 中它实际上在 webview 内重定向,但在 Android 上它会打开浏览器。
我找到了一种可能的解决方案,即注入能够删除所有 target-blank 的 javascript 代码。
这是唯一的解决方案吗?或者有没有办法拦截 webview 将打开网络浏览器?
谢谢你
我希望这会有所帮助,尽管已经晚了。尝试像这样使用 props onShouldStartLoadWithRequest
<WebView
source={{uri:'https://stackoverflow.com/'}}
onShouldStartLoadWithRequest={request => {
if (request.url.includes('https')) {
return false;
} else return true;
}}
/>
似乎为时已晚,但我会给出我找到的简单解决方案。
setSupportMultipleWindows={false}
此属性可防止在 Android 中打开浏览器。