前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >小程序打开h5页面,并实现H5与小程序的通信

小程序打开h5页面,并实现H5与小程序的通信

作者头像
拿我格子衫来
发布2022-01-24 19:05:14
2.6K0
发布2022-01-24 19:05:14
举报
文章被收录于专栏:TopFETopFE

在小程序中打开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

  1. tip网页内 iframe 的域名也需要配置到域名白名单。
  2. tip:开发者工具上,可以在 web-view 组件上通过右键 - 调试,打开 web-view 组件的调试。
  3. tip:每个页面只能有一个 web-viewweb-view 会自动铺满整个页面,并覆盖其他组件。
  4. tipweb-view 网页与小程序之间不支持除 JSSDK 提供的接口之外的通信。
  5. tip:在 iOS 中,若存在JSSDK接口调用无响应的情况,可在 web-view 的 src 后面加个#wechat_redirect解决。
  6. tip:避免在链接中带有中文字符,在 iOS 中会有打开白屏的问题,建议加一下 encodeURIComponent

官方链接

https://developers.weixin.qq.com/miniprogram/dev/component/web-view.html

案例代码如下

代码语言:javascript
复制
<!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>
代码语言:javascript
复制
<!--index.wxml-->
<view class="container">  
  <web-view src="http://192.168.3.86:8000/" bindmessage="bindMessage"></web-view>
</view>
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Bug & Tip
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档