帖子
帖子
用户
博客
课程
显示全部楼层
283
帖子
4
勋章
4927
Y币

[App引擎] 弹出隐私政策提示框后打开新窗口页面无法监听返回键

[复制链接]
发表于 2022-8-9 17:33:38
本帖最后由 imo. 于 2022-8-9 17:40 编辑

弹出隐私政策提示框后打开新窗口页面无法监听返回键

首先在widget/pages/privacy/privacy.stml页面,然后点击隐私URL,打开openwin一个页面(不打算采用打开浏览器的方式,体验不太好)


该页面demo

  1. <template>
  2.         <view class="main">
  3.                 <view class="safe-area">
  4.                         <safe-area></safe-area>

  5.                         <view class="header">
  6.                                 <view class="back" @click="closeWin">
  7.                                         <image class="backicon" src="../../image/daishu_tt_lefterbackicon_titlebar.png" />
  8.                                 </view>
  9.                                 <text class="title">{{title}}</text>
  10.                         </view>
  11.                 </view>

  12.                 <frame v-if="url" class="main" name="openurl" :url="url"></frame>
  13.         </view>
  14. </template>
  15. <style>
  16. .main {
  17.         width: 100%;
  18.         height: 100%;
  19.         background: #f3f3f3;
  20. }
  21. .safe-area {
  22.         background-color: #f8f8f8;
  23. }
  24. .header {
  25.         height: 50px;
  26.         flex-direction: row;
  27.         align-items: center;
  28.         justify-content: center;
  29.         border-bottom: 0.5px solid #ddd;
  30.         position: relative;
  31. }
  32. .back {
  33.         position: absolute;
  34.         display: flex;
  35.         align-content: center;
  36.         align-items: center;
  37.         justify-content: center;
  38.         flex-direction: row;
  39.         width: 50px;
  40.         height: 40px;
  41.         top: 0px;
  42.         left: 10px;
  43. }
  44. .backicon {
  45.         width: 20px;
  46.         height: 20px;
  47. }
  48. .title {
  49.         font-weight: bold;
  50.         font-size: 16px;
  51.         width: 200px;
  52.         text-align: center;
  53.         color: #000;
  54. }
  55. .text {
  56.         margin: 8px;
  57. }

  58. .main {
  59.         width: 100%;
  60.         height: 100%;
  61. }
  62. </style>
  63. <script>
  64. export default {
  65.         name: 'openurl_win',
  66.         data() {
  67.                 return {
  68.                         url: "",
  69.                         title: ""
  70.                 }
  71.         },
  72.         methods: {
  73.                 closeWin() {
  74.                         api.closeWin();
  75.                 }
  76.         },
  77.         apiready() {
  78.                 var that = this;
  79.                 api.addEventListener({
  80.                         name: 'keyback'
  81.                 }, function (ret, err) {
  82.                         api.closeWin();
  83.                 });

  84.                 if (api.pageParam.url) {
  85.                         that.data.url = api.pageParam.url;
  86.                 }
  87.                 api.setFrameClient({
  88.                         frameName: 'openurl'
  89.                 }, function (ret, err) {
  90.                         if (ret.title) {
  91.                                 that.data.title = ret.title;
  92.                         }
  93.                 });
  94.         }
  95. }
  96. </script>
复制代码


keyback这段不能被监听,无法通过返回键关闭这个页面

380
帖子
4
勋章
6
Y币
apiready 执行了吗
283
帖子
4
勋章
4927
Y币
执行了
283
帖子
4
勋章
4927
Y币
就keyback不好使,其他的都正常
这边测试一下你的代码
380
帖子
4
勋章
6
Y币
这个没问题吧,你再试试
283
帖子
4
勋章
4927
Y币
不要直接测试代码啊,代码肯定是没问题的
复现场景是在弹出隐私弹窗之后,别点击同意,点击一个click事件,打开这个页面,这个时候才不行

重点是:弹出隐私弹窗之后,在隐私协议里面点击click,openwin打开这个页面
283
帖子
4
勋章
4927
Y币
本帖最后由 imo. 于 2022-8-10 19:14 编辑

第一步:修改手头的privacy文件,加一个click事件
第二步:新建一个stml页面,把我代码复制上,例如名为demo.stml
第三步:然后privacy文件的click事件openwin打开新建的页面demo.stml
第四步:上传代码,重新编译
第五步:安装后先弹出隐私弹出,也就是privacy文件,点击指定的的click事件,打开demo.stml页面,这个时候demo.stml返回键监听是不能用的


380
帖子
4
勋章
6
Y币
已反馈给引擎技术查看。可能隐私弹框界面比较特殊。
20
帖子
1
勋章
7575
Y币
已支持,重新编译app或自定义loader即可。
您需要登录后才可以回帖 登录

本版积分规则