# web-view
承载网页的容器。会自动铺满整个小程序页面。一个页面只允许存在一个<web-view>
,否则会导致当前页面的导航栏返回按钮不可用。
网页内 iframe 的域名需要配置到域名白名单,请在 「GMU小程序开放平台-小程序开发-版本发布-域名管理」 (opens new window) 中进行配置,配置时需要注意:域名只支持 https 协议。
# 效果展示

# 示例代码
# WXML
<view class="page">
<view class="page__hd">
<text class="page__title">web-view</text>
<text class="page__desc">承载网页的容器。</text>
</view>
<view class="page__bd">
<web-view src="https://m.baidu.com/" bindload="onload" bindmessage="onmessage"></web-view>
</view>
</view>
嵌套的js文件向小程序发送消息
window.parent.postMessage({ data: {foo: 'bar'} }, "*")
# API
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
src | string | 无 | 否 | webview 指向网页的链接。 |
bindmessage | eventhandle | 无 | 否 | 网页向小程序 postMessage 时,会触发并收到消息。e.detail = { data } |
bindload | eventhandle | 无 | 否 | 网页加载成功时候触发此事件。e.detail = { src } |
# 相关接口1:
web-view网页中可使用webviewSDK提供的接口返回小程序页面。 支持的接口有:
接口名 | 说明 |
---|---|
gmu.miniProgram.navigateTo | 参数与小程序接口一致 # |
gmu.miniProgram.navigateBack | 参数与小程序接口一致 # |
gmu.miniProgram.switchTab | 参数与小程序接口一致 # |
gmu.miniProgram.redirectTo | 参数与小程序接口一致 # |
# 示例代码
// 在需要调用JS接口的页面引入JS文件
// <script src="webviewSDK.min.js"></script>
gmu.miniProgram.navigateTo({
url: '/page/index?id=1',
success: function(res) {
console.log(res)
}
});
// 也可以不写callback
gmu.miniProgram.switchTab({ url: '/page/index' });
gmu.miniProgram.navigateBack();
gmu.miniProgram.redirectTo({ url: '/page/index' });
# 相关接口2:
web-view网页中可使用webviewSDK提供的接口支持小程序的其他能力。
接口名 | 说明 |
---|---|
gmu.miniProgram.navigateToMiniProgram | 参数与小程序接口一致 # |
gmu.miniProgram.navigateBackMiniProgram | 参数与小程序接口一致 # |
gmu.miniProgram.setStorage | 参数与小程序接口一致 # |
gmu.miniProgram.getStorage | 参数与小程序接口一致 # |
gmu.miniProgram.removeStorage | 参数与小程序接口一致 # |
# 示例代码
gmu.miniProgram.navigateToMiniProgram({
appId: '',
path: 'page/index/index?id=123',
extraData: {
foo: 'bar'
},
success(res) {
// 打开成功
}
})
// 安卓暂不支持在二级页面调用
gmu.miniProgram.navigateBackMiniProgram();
gmu.miniProgram.setStorage({
key: "key",
data: "value"
})
gmu.miniProgram.getStorage({
key: 'key',
success (res) {
let data = res.data
}
})
gmu.miniProgram.removeStorage({key: 'key'})