1***@qq.com
1***@qq.com
  • 发布:2020-01-07 09:27
  • 更新:2020-01-07 10:09
  • 阅读:973

webview打开外部链接,咋通过本地的方法来控制外部链接的返回

分类:MUI

要求是通过我们本地app新建的一个webview,打开一个外部url,然后通过我们这边app提供的一个顶部导航条,来控制外部链接内容的后退返回??

2020-01-07 09:27 负责人:无 分享
已邀请:
DCMarvel

DCMarvel

wobj.back();
plus.webview
不过现在WebView有BUG ,无法彻底禁用Plus代码,所以恶意页面可以直接掌管App 谨慎使用WebView

  • 1***@qq.com (作者)

    这个方法我重写了:

    /**



    • 重写mui.back()方法

    • http://dev.dcloud.net.cn/mui/window/#closewindow

      */

      var old_back = mui.back;

      mui.back = function(){

      backEvent();

      }

      // 返回(关闭)按钮事件

      function backEvent(){

      baiduWV.canBack(function(event) {

      var canBack = event.canBack;

      // var list = plus.webview.getDisplayWebview();

      console.log(JSON.stringify(baiduWV));

      if(canBack) { // 如果有子页面,则返回

      // mui.toast("返回");

      baiduWV.back();

      } else { // 否则关闭当前页面

      // mui.toast("关闭");

      self.close();

      }

      });

      }

      这种方式偶尔会出现返回时乱跳界面,比如在打开的外部链接里返回时,按理是返回到上一个页面,但是有时候会返回到外部链接的其他界面,日志里也看不出来是怎么个情况

    2020-01-07 10:39

  • DCMarvel

    回复 1***@qq.com: 可能两种情况:1.事件监听时机不对(注意 plusrequire 注入时机) 2.异步函数(canBack)执行时机不对(改同步)

    2020-01-07 11:33

  • y***@163.com

    回复 1***@qq.com: 现在用web-view调转到外部的支付页面,但是页面不能缩放(很小),并且返回出错,提示无法打开页面,需要多点几次返回,谁有解决的办法,急

    2020-01-15 13:43

该问题目前已经被锁定, 无法添加新回复