【H5+】跨webview多页面 触发事件(一)

原理介绍
关键词
plus.webview.evalJS
dispatchEvent

在B页面通知A页面,我们暂时不管通知A页面的内容,只是希望B页面调用一段代码,能让A页面弹出一个alert
这时候我们就要用到webview的evalJS方法了
A.html

 <header class="mui-bar mui-bar-nav">
        <h1 class="mui-title">我是A页面</h1>
    </header>
    <div class="mui-content">
        <button type="button" class="mui-btn mui-btn-blue">打开B页面</button>
    </div>
    <script src="js/mui.min.js"></script>
    <script type="text/javascript">
        mui.init()
        mui.plusReady(function(){
            document.querySelector("button").addEventListener('tap',function(){
                mui.openWindow('B.html')
            })
        })
    </script>

B.html

 <header class="mui-bar mui-bar-nav">
        <a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
        <h1 class="mui-title">我是B页面</h1>
    </header>
    <div class="mui-content">
        <button type="button" class="mui-btn mui-btn-blue">通知A页面</button>
    </div>
    <script src="js/mui.min.js"></script>
    <script type="text/javascript">
        mui.init()
        mui.plusReady(function(){
            document.querySelector("button").addEventListener('tap',function(){
                // 通知A页面的方法
            })
        })
    </script>

那么,怎么才能通知A弹出框呢?我们需要用到关键词所提到的 plus.webview.evalJS
嘿嘿, 我们现在B获取到A的Webview对象,然后通过evalJS来向A页面发送一段代码让其执行
// 通知A页面的方法
//getLaunchWebview: 获取应用首页WebviewObject窗口对象在这里获得的窗口对象是A页面
var A = plus.webview.getLaunchWebview()
A.evalJS(‘alert(“我是被B的”)’)
点击一下按钮,果不其然,我们的弹出框就显示出来,当然我们也还可以定义其它的函数来接收响应
A
function faqme(){
alert(‘啊,乖乖站好!’)
}
B
// 通知A页面的方法var A = plus.webview.getLaunchWebview()
A.evalJS(‘faqme()’)
当然,A页面执行了faqme函数,弹出了乖乖站好

webview详解
获取应用首页WebviewObject窗口对象
var index=plus.webview.getLaunchWebview()
获取当前窗口的WebviewObject对象
var self=plus.webview.currentWebview()
查找指定标识的WebviewObject窗口
var search=plus.webview.getWebviewById(‘search’);
webview
Webview模块管理应用窗口界面,实现多窗口的逻辑控制管理操作。通过plus.webview可获取应用界面管理对象。
方法:
all: 获取所有Webview窗口添加链接描述
close: 关闭Webview窗口
create: 创建新的Webview窗口
currentWebview: 获取当前窗口的WebviewObject对象
getWebviewById: 查找指定标识的WebviewObject窗口
getLaunchWebview: 获取应用首页WebviewObject窗口对象
getTopWebview: 获取应用显示栈顶的WebviewObject窗口对象
hide: 隐藏Webview窗口
open: 创建并打开Webview窗口
show: 显示Webview窗口
defaultHardwareAccelerated: 获取Webview默认是否开启硬件加速

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值