今天也是进步一点点呀 加油
openTB(url) {
return new Promise((resolve, reject) => {
if (plus.os.name == 'Android') {
plus.runtime.openURL(
url,
function (res) {
// 未检测到淘宝客户端的回调
resolve(res)
},
'com.taobao.taobao'
);
} else {
url = url.split('//')[1];
plus.runtime.openURL(
'taobao://' + url,
function (res) {
// 未检测到淘宝客户端的回调
resolve(res)
},
'taobao://'
);
}
})
}
openJD(url) {
// 京东的商品链接
// let url = "https://item.jd.com/1110592.html";
let openUrl = url;
if (url.substr(0, 5) === 'https') {
let data = {
category: 'jump',
des: 'getCoupon',
url: url.substr(8)
}
openUrl = `openApp.jdMobile://virtual?params=${JSON.stringify(data)}`;
} else if (url.substr(0, 4) === 'http') {
let data = {
category: 'jump',
des: 'getCoupon',
url: url.substr(7)
}
openUrl = `openApp.jdMobile://virtual?params=${JSON.stringify(data)}`;
}
plus.runtime.openURL(openUrl, function (res) {
// 未检测到京东客户端的回调
});
}
openPDD(url, h5Url) {
let openUrl = url;
// let url = 'pinduoduo://com.xunmeng.pinduoduo/duo_coupon_landing.html?goods_id=580820933&pid=10001_20999&t=JDj7m0HqSXQbTTWKnb0jjHkWGN3zVjAa9Hs5ZUD0O0s=";'
return new Promise((resolve, reject) => {
if (plus.os.name == 'Android') {
openUrl = openUrl.split('//')[1];
plus.runtime.openURL(
'pinduoduo://' + openUrl,
function (res) {
// console.log(res)
// 未检测到拼多多客户端的回调
resolve(res)
},
'com.xunmeng.pinduoduo'
);
} else {
openUrl = openUrl.split('//')[1];
plus.runtime.openURL(
'pinduoduo://' + openUrl,
function (res) {
// console.log(res)
// 未检测到拼多多客户端的回调
resolve(res)
},
'pinduoduo://'
);
}
})
}
调用: 都是同理
this.openJD('https://item.jd.com/1110592.html').then(res=>{
//这里是未安装App的回调
console.log("暂无京东App")
})
应用内使用webView访问淘宝H5页面一直会弹出拉起淘宝App
该写法为访问H5页面禁止拉起淘宝App
页面路径 /pages/webView/InterceptWebView
<template>
<view> </view>
</template>
<script>
export default {
data() {
return {};
},
methods: {},
onLoad(options) {
if (options.url && options.url.indexOf("http") > -1) {
// 创建新的Webview窗口
let wv = plus.webview.create("", "custom-webview", {
"uni-app": "none",
top: uni.getSystemInfoSync().statusBarHeight + 44,
progress: {
color: "#FEE039", //加载webview进度条的色值
},
});
/**
拦截Webview窗口的URL请求
拦截URL请求后,Webview窗口将不会跳转到新的URL地址,
此时将通过callback回调方法返回拦截的URL地址(可新开Webview窗口加载URL页面等)。
此方法只能拦截窗口的网络超链接跳转(包括调用loadURL方法触发的跳转),
不可拦截页面请求资源请求(如加载css/js/png等资源的请求)。
match -- > 拦截的正则 这里的拦截阻止了淘宝H5页面拉起淘宝App
*/
wv.overrideUrlLoading(
{
mode: "reject",
match: ".*tbopen.*|.*details\.htm.*|.*uland.*",
},
(event) => {
// callback回调方法
console.log(event.url);
}
);
// 需要打开的webview的url
let target = decodeURIComponent(options.url);
// 加载URL页面
wv.loadURL(target);
// 获取App当前的webview的对象实例
let currentWebView = this.$scope.$getAppWebview();
// 将创建好的Webview窗口 添加到当前webview的对象实例中
currentWebView.append(wv);
}
},
};
</script>
<style lang="scss" scoped></style>
使用 通过店铺的url地址 在App内访问 这样就阻止到跳转淘宝app了
uni.navigateTo({
url: `/pages/webView/InterceptWebView?url=http://store.taobao.com/shop/view_shop.htm?user_number_id=3406862477&title=店铺详情`
})
评论