修复webview处理重定向时的bug,适配微信H5支付;为webview增加打开浏览器功能
This commit is contained in:
parent
00092db4c4
commit
1207a4407a
|
@ -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}
|
||||
|
|
|
@ -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}
|
||||
|
|
Loading…
Reference in New Issue