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}