web-view
web-view组件用于承载 H5 网页,自动铺满整个小程序页面。
| 属性名 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| src | String | 无 | web-view 要渲染的 H5 网页 URL |
| onMessage | EventHandle | 无 | 网页向小程序 postMessage 消息。e.detail = { data } |
说明:每个页面只能有一个web-view,请不要渲染多个web-view,会自动铺满整个页面,并覆盖其它组件。
代码示例
<!-- axml --><web-view src="https://xxxx.com/" onMessage="test"></web-view>
相关APIweb-view H5页面可以使用手动引入 https://appx/web-view.min.js, 提供了相关的接口返回小程序页面。支持的接口有:
说明:webview组件中调用小程序的方法,还是需要使用my进行调用。
| 接口类别 | 接口名 | 说明 |
|---|---|---|
| 导航栏 | my.navigateTo | 保留当前页面,跳转到应用内的某个指定页面 |
| 导航栏 | my.navigateBack | 关闭当前页面,返回上一级或多级页面 |
| 导航栏 | my.switchTab | 跳转到指定 tabBar 页面,并关闭其他所有非 tabBar 页面 |
| 导航栏 | my.reLaunch | 关闭当前所有页面,跳转到应用内的某个指定页面 |
| 导航栏 | my.redirectTo | 关闭当前页面,跳转到应用内的某个指定页面 |
| 向小程序发送消息 | my.postMessage | 向小程序发送消息,自定义一组或多组key、value数据,格式为JSON,如:my.postMessage({name:”测试web-view”}) |
| 监听小程序发过来的消息 | my.onMessage | 监听小程序发过来的消息 |
代码示例
web-viewH5页面:<!-- html --><script type="text/javascript" src="https://appx/web-view.min.js"></script>// 头部执行以下脚本 或<script>if (navigator.userAgent.indexOf('AlipayClient') > -1 || navigator.userAgent.indexOf('mPaaSClient') > -1) {document.writeln('<script src="https://appx/web-view.min.js"' + '>' + '<' + '/' + 'script>');}// javascriptmy.navigateTo({url: '../get-user-info/get-user-info'});// 网页向小程序 postMessage 消息my.postMessage({name:"测试web-view"});// 接收来自小程序的消息。my.onMessage = function(e) {console.log(e); //{'sendToWebView': '1'}}</script>
my.postMessage信息发送后,小程序页面接收信息时,会执行onMessage配置的方法:// 小程序页面对应的 page.js 声明 test 方法,// 由于 page.axml 里的 web-view 组件设置了 onMessage="test",// 当网页里执行完 my.postMessage 后,test 方法会被执行Page({onLoad(e){this.webViewContext = dd.createWebViewContext('web-view-1');},test(e){my.alert({content:JSON.stringify(e.detail),});this.webViewContext.postMessage({'sendToWebView': '1'});},)};
