uniapp:APP端webview拦截H5页面跳转,华为市场发布需要限制webview的H5页面跳转

在使用uniapp开发APP项目时,华为市场上线APP会被打回来:您的应用内容存在点击跳转至第三方应用市场或游戏中心下载渠道的问题,不符合华为应用市场审核标准。

华为审核指南4.6

因此可以考虑下面的处理方式,通过拦截webview页面的url实现:

javascript 复制代码
  onReady(() => {
    nextTick(() => {
      plusReady();
    });
  });

  const plusReady = () => {
    let pages = getCurrentPages();
    let page = pages[pages.length - 1];
    let currentWebview = page.$getAppWebview();
    let t: any = setTimeout(() => {// 加个延时器,确保能够拿到currentWebview.children()[0]
      clearTimeout(t);
      t = null;
      // 获取webview实例
      const wv = currentWebview.children()[0];
      // 除myweb.cn以外的页面跳转都将被拦截
      // 如需全部拦截:wv.overrideUrlLoading({ mode: 'reject' }, (e) => {}
      wv.overrideUrlLoading({ mode: 'allow', match: '.*.myweb.cn/.*' }, (e) => {
        uni.showModal({
          title: '提示',
          content: '尊敬的用户,您即将打开手机浏览器跳转页面,可能会存在安全风险,请谨慎操作。确定继续吗?',
          showCancel: true,
          success: ({ confirm }) => {
            if (confirm) {
              plus.runtime.openURL(e.url); // 使用外部浏览器打开,规避风险,跳出去了你想干啥和我APP没关系~~~~
            }
          }
        });
      });
    }, 500);
  };
相关推荐
_处女座程序员的日常7 小时前
Rollup failed to resolve import “destr“ from ***/node_modules/pinia-plugin-pers
javascript·uni-app·vue
慢慢雨夜16 小时前
uniapp打包华为,提示请提供64位版本软件包后再提交审核
uni-app
秋雨凉人心16 小时前
uniapp 设置安全区域
前端·javascript·vue.js·uni-app
Little_Code16 小时前
uniapp 如何使用vuex store (亲测)
uni-app·vuex·store
咸虾米_16 小时前
uniCloud云对象调用第三方接口,根据IP获取用户归属地的免费API接口,亲测可用
网络·uni-app·unicloud
Jiaberrr19 小时前
uniapp中使用原生ajax上传文件并携带其他数据,实时展示上传进度
前端·javascript·vue.js·ajax·uni-app
上趣工作室21 小时前
uniapp中使用全局样式文件引入的三种方式
开发语言·rust·uni-app
秋田君1 天前
uniapp路由与页面跳转详解:API调用与Navigator组件实战
uni-app
FIRE1 天前
uniapp小程序分享使用canvas自定义绘制 vue3
前端·小程序·uni-app
@Carey1 天前
uniapp配置消息推送unipush 厂商推送设置配置 FCM 教程
uni-app