请选择 进入手机版 | 继续访问电脑版
12下一页
返回列表 发新帖

[其他] 在vue页面调用api.closeWidget()退出应用失败

[复制链接]
Vinslam 发表于 2022-1-24 14:43:34
在vue页面调用api.closeWidget()退出应用失败
  1. // 不同意隐私条例
  2.     quit() {
  3.      apiready = function () {
  4.             api.closeWidget();
  5.       }
  6.     },
复制代码
我是把vue打包后放进apicloud里面,打包出来的app,index页面只引用了极光推送,控制台无报错,但是首次打开应用,弹出隐私政策页,页面底部有两个按钮,用户同意隐私政策则可以进入app,不同意就退出应用,但是点击不同意按钮调用上面的方法无反应
  1. <script>
  2.     window.onload = function () {
  3.       // 阻止双击放大
  4.       var lastTouchEnd = 0;
  5.       document.addEventListener('touchstart', function (event) {
  6.         if (event.touches.length > 1) {
  7.           event.preventDefault();
  8.         }
  9.       });
  10.       document.addEventListener('touchend', function (event) {
  11.         var now = (new Date()).getTime();
  12.         if (now - lastTouchEnd <= 300) {
  13.           event.preventDefault();
  14.         }
  15.         lastTouchEnd = now;
  16.       }, false);

  17.       // 阻止双指放大
  18.       document.addEventListener('gesturestart', function (event) {
  19.         event.preventDefault();
  20.       });


  21.       // 当一个手指放在屏幕上时,会触发 touchstart 事件。如果另一个手指又放在了屏幕上,则会先触发 gesturestart 事件
  22.       document.addEventListener('gesturestart', function (e) {
  23.         e.preventDefault();
  24.       });

  25.       // // 在单个元素上单击两次 ===  dblclick
  26.       document.addEventListener('dblclick', function (e) {
  27.         e.preventDefault();
  28.       });

  29.     }

  30.     apiready = function () {
  31.       // 获取版本号
  32.       var appVersion = api.appVersion;

  33.       if (appVersion != localStorage.getItem("appVersion")) {
  34.         // 显示隐私政策
  35.         sessionStorage.setItem("yinsi", true);
  36.         localStorage.setItem("appVersion", appVersion)
  37.       } else {
  38.         // 不显示
  39.         sessionStorage.setItem("yinsi", false);
  40.         localStorage.setItem("appVersion", appVersion)
  41.       }

  42.       api.setStatusBarStyle({
  43.         style: 'dark',
  44.         color: '#ffffff'
  45.       });

  46.       //极光推送初始化
  47.       var ajpush = api.require('ajpush');

  48.       if (api.systemType == "android") {
  49.         sessionStorage.setItem('isSafari', false)
  50.         ajpush.init(function (ret) {
  51.           if (ret.status == 1) {
  52.             // 安卓
  53.             ajpush.getRegistrationId(function (ret, err) {
  54.               localStorage.setItem(
  55.                 "registrationId",
  56.                 ret.id
  57.               );
  58.               return
  59.             });
  60.           }
  61.         });
  62.       } else {
  63.         sessionStorage.setItem('isSafari', true)
  64.         ajpush.getRegistrationId(function (ret) {
  65.           localStorage.setItem(
  66.             "registrationId",
  67.             ret.id
  68.           );
  69.           return
  70.         });

  71.       };

  72.       api.addEventListener({
  73.         name: 'resume'
  74.       }, function (ret, err) {
  75.         clearAJpush()
  76.       });


  77.       PushOnClick() //监听极光推送点击

  78.       //点击推送接收回调事件处理
  79.       function PushOnClick() {
  80.         if (api.systemType == "ios") {
  81.           api.addEventListener({
  82.             name: 'noticeclicked'
  83.           }, function (ret, err) {
  84.             //
  85.             **.**= ret.value.**.**
  86.             **.**= **.**replace(/'/g, '"')
  87.             **.**= JSON.**.**
  88.             //
  89.             **.**type, info.id)
  90.             clearAJpush()
  91.           })
  92.         } else {
  93.           api.addEventListener({
  94.             name: 'appintent'
  95.           }, function (ret, err) {

  96.             **.**= ret.appParam.ajpush.**.**
  97.             **.**= **.**replace(/'/g, '"')
  98.             **.**= JSON.**.**
  99.             //
  100.             **.**type, info.id)
  101.             clearAJpush()
  102.           })
  103.         }
  104.         var ajpush = api.require('ajpush');
  105.         ajpush.setBadge({
  106.           badge: 0
  107.         });

  108.       }

  109.       //  清除推送
  110.       function clearAJpush() {
  111.         var ajpush = api.require('ajpush');
  112.         ajpush.setBadge({
  113.           badge: 0
  114.         });
  115.         var param = {
  116.           id: -1
  117.         };
  118.         ajpush.clearNotification(param, function (ret) {
  119.           if (ret.status == 1) {
  120.             //
  121.           }
  122.         });
  123.       }

  124.       //极光推送跳转
  125.       function click_jump(type, id) {
  126.         clearAJpush()
  127.         // alert(window.location.href.substr(0, window.location.href.indexOf("#") + 2))
  128.         // alert(window.location.href.substr(0, window.location.href.indexOf("#") + 2))
  129.         api.openWin({
  130.           name: 'Home',
  131.           url: window.location.href.substr(0, window.location.href.indexOf("#") + 2),
  132.         });

  133.         return

  134.         if (type == 2) { ////优惠卷
  135.           api.openWin({
  136.             name: 'Coupon',
  137.             url: window.location.href.substr(0, window.location.href.indexOf("#") + 2) + 'coupon',
  138.           });
  139.         } else if (type == 3) { //商品详情
  140.           api.openWin({
  141.             name: 'Detail',
  142.             url: window.location.href.substr(0, window.location.href.indexOf("#") + 2) +
  143.               'detail?ProId=' + id,
  144.           });
  145.         } else if (type == 4) { //店铺
  146.           api.openWin({
  147.             name: 'Shop',
  148.             url: window.location.href.substr(0, window.location.href.indexOf("#") + 2) +
  149.               'shop?StoreId=' + id,
  150.           });
  151.         } else if (type == 5) { //平台活动
  152.           api.openWin({
  153.             name: 'Specialarea',
  154.             url: window.location.href.substr(0, window.location.href.indexOf("#") + 2) +
  155.               'specialarea?Value=' +
  156.               id,
  157.           });
  158.         } else { //首页
  159.           api.openWin({
  160.             name: 'Home',
  161.             url: window.location.href.substr(0, window.location.href.indexOf("#") + 2) + 'main/home',
  162.           });
  163.         }

  164.       }

  165.     }
  166.   </script>
复制代码


10条回复

技术支持-F 管理员 26174Y币
通过api.sendEvent 发送事件到index 页面,在index 页面进行关闭。
Vinslam 实习司机 107Y币
我打开app,在隐私政策页面停留几分钟后会出现白屏,但是滑动一下页面又变正常了。有没有可能是我的vue项目里用了大量的es6写法,导致的这个问题?
技术支持-F · 2022-1-24 15:04通过api.sendEvent 发送事件到index 页面,在index 页面进行关闭。
Vinslam 实习司机 107Y币
api.sendEvent 发送事件到index 页面,在安卓手机测试有用,苹果手机第一次点击有效,再次打开应用点击按钮无效
技术支持-F · 2022-1-24 15:04通过api.sendEvent 发送事件到index 页面,在index 页面进行关闭。
技术支持-F 管理员 26174Y币
配置WKWebView页面恢复模式
字段名:WKWebViewRecoveryMode

取值范围:

reload        // 重新刷新白屏的页面。可通过api.isRecoveryMode属性判断是否是恢复模式。
rebootApp     // 热重启应用
none          // 不做处理
默认值:reload

描述:WKWebView加载的页面的渲染进程是独立于当前App的,当系统内存不足时,系统可能会结束掉该进程进行回收,从而导致该页面白屏。可通过配置此字段来刷新页面或热重启整个应用,该配置只当应用在前台运行时有效,若应用在后台时有页面白屏,则回到前台时会直接进行热重启。

配置示例:

<preference name="WKWebViewRecoveryMode" value="rebootApp"/>

配置这个看看
Vinslam · 2022-1-24 15:08我打开app,在隐私政策页面停留几分钟后会出现白屏,但是滑动一下页面又变正常了。有没有可能是我的vue项目里用了大量的es6写法,导致的这个问题?
...
Vinslam 实习司机 107Y币
我的隐私政策页面是一个静态页面,写的大部分是行内样式,单位为pt。我发现苹果手机打开这个页面样式渲染非常之慢,一般需要四五分钟左右才可以渲染完成,渲染完成之后点击按钮才可以退出应用,这怎么办呢?
技术支持-F · 2022-1-24 15:50配置WKWebView页面恢复模式
字段名:WKWebViewRecoveryMode


技术支持-F 管理员 26174Y币
重新写
Vinslam · 2022-1-24 16:21我的隐私政策页面是一个静态页面,写的大部分是行内样式,单位为pt。我发现苹果手机打开这个页面样式渲染非常之慢,一般需要四五分钟左右才可以渲染完成,渲染完成之后点击按钮才可以退出应用,这怎么办呢?

...
Vinslam 实习司机 107Y币
我把页面代码删掉,只写一个p标签,渲染也是那么慢
技术支持-F 管理员 26174Y币
页面中引入框架js,css了吗
Vinslam · 2022-1-24 18:13我把页面代码删掉,只写一个p标签,渲染也是那么慢
lzs 驾校小白 4Y币
只引入了better-scroll
技术支持-F · 2022-1-25 09:41页面中引入框架js,css了吗
12下一页
您需要登录后才可以回帖 登录

本版积分规则