uni-app/5+App开发淘客商城时如何拉起淘宝/京东/拼多多 | 以及应用内使用webView访问淘宝H5页面拦截拉起App

作者: 小枫枫

临枫的项目经历分享给你们啦~

扫码交朋友

标签:

特别声明:文章有少部分为网络转载,资源使用一般不提供任何帮助,特殊资源除外,如有侵权请联系!

bj.png

今天也是进步一点点呀 加油

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")
})

 

 

calltb.jpg

calljd.jpg

callpdd.jpg

 

应用内使用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=店铺详情`
})
本文最后更新于2020-9-27,已超过 1 年没有更新,如果文章内容或图片资源失效,请留言反馈,我们会及时处理,谢谢!
分享到:
打赏

评论

切换注册

登录

您也可以使用第三方帐号快捷登录

切换登录

注册

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏