From 1207a4407a7a8f6de9b0cc57f6cbda4b7b424f2d Mon Sep 17 00:00:00 2001 From: yezian Date: Tue, 27 Feb 2024 00:24:27 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dwebview=E5=A4=84=E7=90=86?= =?UTF-8?q?=E9=87=8D=E5=AE=9A=E5=90=91=E6=97=B6=E7=9A=84bug=EF=BC=8C?= =?UTF-8?q?=E9=80=82=E9=85=8D=E5=BE=AE=E4=BF=A1H5=E6=94=AF=E4=BB=98?= =?UTF-8?q?=EF=BC=9B=E4=B8=BAwebview=E5=A2=9E=E5=8A=A0=E6=89=93=E5=BC=80?= =?UTF-8?q?=E6=B5=8F=E8=A7=88=E5=99=A8=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- screeens/WebWithHeader/index.jsx | 17 ++++++++++++----- screeens/WebWithoutHeader/index.jsx | 17 ++++++++++++----- 2 files changed, 24 insertions(+), 10 deletions(-) diff --git a/screeens/WebWithHeader/index.jsx b/screeens/WebWithHeader/index.jsx index f2f6a0e..7b4f8b6 100644 --- a/screeens/WebWithHeader/index.jsx +++ b/screeens/WebWithHeader/index.jsx @@ -82,7 +82,12 @@ export default function WebWithHeader({ navigation, route }) { }); }; - //唤起支付宝 + //从浏览器打开网页 + const openBrowser = async (data) => { + Linking.openURL(data); + }; + + //唤起支付宝或微信 const handleUrlRedirect = (event) => { const { url } = event; @@ -108,7 +113,7 @@ export default function WebWithHeader({ navigation, route }) { { cancelable: false } ); }); - return true; // 应用程序处理了该URL + return false; // 应用程序处理了该URL } catch (error) { // 启动支付宝客户端失败,继续加载URL console.error(error); @@ -116,9 +121,9 @@ export default function WebWithHeader({ navigation, route }) { } // weixin:相关的scheme处理 - if (url.startsWith("weixin:")) { + if (url.startsWith("weixin:") || url.startsWith("weixin")) { try { - // 尝试启动支付宝客户端 + // 尝试启动微信客户端 Linking.openURL(url).catch(() => { // 启动微信客户端失败,弹出提示安装对话框 Alert.alert( @@ -128,7 +133,7 @@ export default function WebWithHeader({ navigation, route }) { { cancelable: false } ); }); - return true; // 应用程序处理了该URL + return false; // 应用程序处理了该URL } catch (error) { // 启动微信客户端失败,继续加载URL console.error(error); @@ -155,6 +160,8 @@ export default function WebWithHeader({ navigation, route }) { copy(msg.data); } else if (msg.type === "NAVIGATE") { navigation.navigate(msg.data.page, { ...msg.data.params }); + } else if (msg.type === "OPEN_BROWSER") { + openBrowser(msg.data); } }} injectedJavaScript={setCookieScript} diff --git a/screeens/WebWithoutHeader/index.jsx b/screeens/WebWithoutHeader/index.jsx index 87cc621..0225f83 100644 --- a/screeens/WebWithoutHeader/index.jsx +++ b/screeens/WebWithoutHeader/index.jsx @@ -75,7 +75,12 @@ export default function WebWithoutHeader({ navigation, route }) { }); }; - //唤起支付宝 + //从浏览器打开网页 + const openBrowser = async (data) => { + Linking.openURL(data); + }; + + //唤起支付宝或微信 const handleUrlRedirect = (event) => { const { url } = event; @@ -101,7 +106,7 @@ export default function WebWithoutHeader({ navigation, route }) { { cancelable: false } ); }); - return true; // 应用程序处理了该URL + return false; // 应用程序处理了该URL } catch (error) { // 启动支付宝客户端失败,继续加载URL console.error(error); @@ -109,9 +114,9 @@ export default function WebWithoutHeader({ navigation, route }) { } // weixin:相关的scheme处理 - if (url.startsWith("weixin:")) { + if (url.startsWith("weixin:") || url.startsWith("weixin")) { try { - // 尝试启动支付宝客户端 + // 尝试启动微信客户端 Linking.openURL(url).catch(() => { // 启动微信客户端失败,弹出提示安装对话框 Alert.alert( @@ -121,7 +126,7 @@ export default function WebWithoutHeader({ navigation, route }) { { cancelable: false } ); }); - return true; // 应用程序处理了该URL + return false; // 应用程序处理了该URL } catch (error) { // 启动微信客户端失败,继续加载URL console.error(error); @@ -148,6 +153,8 @@ export default function WebWithoutHeader({ navigation, route }) { copy(msg.data); } else if (msg.type === "NAVIGATE") { navigation.navigate(msg.data.page, { ...msg.data.params }); + } else if (msg.type === "OPEN_BROWSER") { + openBrowser(msg.data); } }} injectedJavaScript={setCookieScript}