小程序打开h5页面,并实现H5与小程序的通信
【摘要】
在小程序中打开H5页面,需要使用web-view组件
web-view组件是承载网页的容器。会自动铺满整个小程序页面,个人类型的小程序暂不支持使用。
会自动铺满屏幕,意思就是说你的页面只要有了web-view组件,其他内容就显示不出来啦
需要注意的是 src如果有中文会显示白屏 最好使用encode...
在小程序中打开H5页面,需要使用web-view组件
web-view组件是承载网页的容器。会自动铺满整个小程序页面,个人类型的小程序暂不支持使用。
会自动铺满屏幕,意思就是说你的页面只要有了web-view组件,其他内容就显示不出来啦
需要注意的是 src如果有中文会显示白屏 最好使用encodeURIComponent转义一下url
此组件有几个参数分别 如下
属性 | 类型 | 默认值 | 必填 | 说明 | 最低版本 |
---|---|---|---|---|---|
src | string | 否 | webview 指向网页的链接。可打开关联的公众号的文章,其它网页需登录小程序管理后台配置业务域名。 | 1.6.4 | |
bindmessage | eventhandler | 否 | 网页向小程序 postMessage 时,会在特定时机(小程序后退、组件销毁、分享)触发并收到消息。e.detail = { data },data是多次 postMessage 的参数组成的数组 | 1.6.4 | |
bindload | eventhandler | 否 | 网页加载成功时候触发此事件。e.detail = { src } | 1.6.4 | |
binderror | eventhandler | 否 | 网页加载失败的时候触发此事件。e.detail = { src } | 1.6.4 |
web-view网页中可使用JSSDK 1.3.2提供的接口返回小程序页面。 支持的接口有:
接口名 | 说明 | 最低版本 |
---|---|---|
wx.miniProgram.navigateTo | 参数与小程序接口一致 | 1.6.4 |
wx.miniProgram.navigateBack | 参数与小程序接口一致 | 1.6.4 |
wx.miniProgram.switchTab | 参数与小程序接口一致 | 1.6.5 |
wx.miniProgram.reLaunch | 参数与小程序接口一致 | 1.6.5 |
wx.miniProgram.redirectTo | 参数与小程序接口一致 | 1.6.5 |
wx.miniProgram.postMessage | 向小程序发送消息,会在特定时机(小程序后退、组件销毁、分享)触发组件的message事件 | 1.7.1 |
wx.miniProgram.getEnv | 获取当前环境 | 1.7.1 |
Bug & Tip
tip
:网页内 iframe 的域名也需要配置到域名白名单。tip
:开发者工具上,可以在 web-view 组件上通过右键 - 调试,打开 web-view 组件的调试。tip
:每个页面只能有一个 web-view,web-view 会自动铺满整个页面,并覆盖其他组件。tip
:web-view 网页与小程序之间不支持除 JSSDK 提供的接口之外的通信。tip
:在 iOS 中,若存在JSSDK接口调用无响应的情况,可在 web-view 的 src 后面加个#wechat_redirect解决。tip
:避免在链接中带有中文字符,在 iOS 中会有打开白屏的问题,建议加一下 encodeURIComponent
官方链接
https://developers.weixin.qq.com/miniprogram/dev/component/web-view.html
案例代码如下
-
<!DOCTYPE html>
-
<html>
-
<head>
-
<meta name="viewport" content="width=device-width,initial-scale=1">
-
</head>
-
<body>
-
我是H5页面的内容
-
<button onclick="sendmsg()">点我可以让小程序切换页面</button>
-
-
<script src="https://res.wx.qq.com/open/js/jweixin-1.3.2.js"></script>
-
<script>
-
function ready() {
-
console.log(window.__wxjs_environment === 'miniprogram') // true
-
}
-
if (!window.WeixinJSBridge || !WeixinJSBridge.invoke) {
-
document.addEventListener('WeixinJSBridgeReady', ready, false)
-
} else {
-
ready()
-
}
-
function sendmsg () {
-
console.log('点击发送消息')
-
wx.miniProgram.navigateTo({url: '/pages/logs/logs'}) // 跳转小程序的页面
-
// 网页向小程序 postMessage 时,会在特定时机(小程序后退、组件销毁、分享)触发并收到消息。
-
// e.detail = { data },data是多次 postMessage 的参数组成的数组
-
// wx.miniProgram.postMessage({ data: { foo: 'bar' } })
-
}
-
</script>
-
</body>
-
</html>
-
<!--index.wxml-->
-
<view class="container">
-
<web-view src="http://192.168.3.86:8000/" bindmessage="bindMessage"></web-view>
-
</view>
文章来源: fizzz.blog.csdn.net,作者:拿我格子衫来,版权归原作者所有,如需转载,请联系作者。
原文链接:fizzz.blog.csdn.net/article/details/106014993
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)