fuliqi
2024-01-24 29c1e7eb5ac16e90d8991a86c1c071bc312ec8d9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
/*
 * @Author: wuyue
 * @Date: 2022-11-30 17:55:45
 * @LastEditTime: 2022-12-12 11:11:11
 * @LastEditors: wuyue
 * @Descripttion:
 * @version:
 */
import CallApp from 'callapp-lib';
export default {
  methods: {
    openApp(commSchemeUrl) {
      // 通用协议地址
      // let commSchemeUrl
      // iOS 下载地址
      // const iOSDownloadUrl = this.$store.getters.iosUrl;
      // 安卓下载地址
      const androidDownloadUrl = this.$store.getters.androidUrl
      setTimeout(function () {
        window.location.href = commSchemeUrl;
        console.log(commSchemeUrl, "===242424")
      }, 500);
      if (!this.$root.isIos) {
        // 3ms 后没打开,直接跳转对应下载页面
        const appDownload = setTimeout(() => {
          window.location.href = androidDownloadUrl;
        }, 3000);
 
        document.addEventListener('visibilitychange', function () {
          // 如果页面隐藏,认为打开 app,清除下载任务
          if (document.hidden || document.webkitHidden) {
            console.log('clear1');
            clearTimeout(appDownload)
          }
        })
        window.addEventListener('pagehide', function () {
          console.log('clear2');
          clearTimeout(appDownload)
        })
      }
    },
    // 打开安卓
    openAndroid(commSchemeUrl) {
      const androidDownloadUrl = this.$store.getters.androidUrl
      const scheme = {
        protocol: 'uni.wlyxls.commodity.share',
        host: 'wlyxlslaunch'
      }
      const option = {
        scheme: scheme,
        intent: { // 安卓原生谷歌浏览器必须传递Intent协议地址,才能唤起APP。
          package: 'uni.UNI2A0D0ED', // Android包名
          scheme: 'uni.wlyxls.commodity.share', // 和protocol一样:APP协议,URL Scheme的scheme字段,就是你要打开的APP的标识
        },
        fallback: androidDownloadUrl,
        timeout: 3000,
      };
 
      const lib = new CallApp(option);
      lib.open({
        path: '', // 需要打开的页面对应的值,若不需要打开特定页面,path传空字符串''就可以。
        param: commSchemeUrl, // 打开APP某个页面时需要接收的参数
        // 自定义唤端失败回调函数,传递callback会覆盖callapp-lib库中默认的唤端失败处理逻辑
        callback: function () {
          console.log('唤端失败的处理');
        }
      });
    }
  }
}