微信小程序> 微信小程序内嵌网页webview

微信小程序内嵌网页webview

浏览量:557 时间: 来源:ganggang4321

开发十年,就只剩下这套架构体系了!   小程序

                                                                                       

web-view 组件是一个可以用来承载网页的容器,会自动铺满整个小程序页面。个人类型与海外类型的小程序暂不支持使用。

 

客户端 6.7.2 版本开始,navigationStyle: customweb-view 组件无效

                                                                          
属性名类型默认值说明
srcString webview 指向网页的链接。可打开关联的公众号的文章,其它网页需登录小程序管理后台配置业务域名。
bindmessageEventHandler 网页向小程序 postMessage 时,会在特定时机(小程序后退、组件销毁、分享)触发并收到消息。e.detail = { data }
bindloadEventHandler 网页加载成功时候触发此事件。e.detail = { src }
binderrorEventHandler 网页加载失败的时候触发此事件。e.detail = { src }

示例代码:

!-- wxml --!-- 指向微信公众平台首页的web-view --web-view src="https://mp.weixin.qq.com/"/web-view

相关接口 1

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向小程序发送消息1.7.1
wx.miniProgram.getEnv获取当前环境1.7.1

示例代码:

在开发者工具中预览效果

!-- html --script type="text/javascript" src="https://res.wx.qq.com/open/js/jweixin-1.3.2.js"/script// javascriptwx.miniProgram.navigateTo({url: '/path/to/page'})wx.miniProgram.postMessage({ data: 'foo' })wx.miniProgram.postMessage({ data: {foo: 'bar'} })wx.miniProgram.getEnv(function(res) { console.log(res.miniprogram) // true })

相关接口 2

web-view/网页中仅支持以下JSSDK接口

                                                                                                                                                                                                                                                                                                                   
接口模块接口说明具体接口
判断客户端是否支持js checkJSApi
图像接口拍照或上传chooseImage
 预览图片previewImage
 上传图片uploadImage
 下载图片downloadImage
 获取本地图片getLocalImgData
音频接口开始录音startRecord
 停止录音stopRecord
 监听录音自动停止onVoiceRecordEnd
 播放语音playVoice
 暂停播放pauseVoice
 停止播放stopVoice
 监听语音播放完毕onVoicePlayEnd
 上传接口uploadVoice
 下载接口downloadVoice
智能接口识别音频translateVoice
设备信息获取网络状态getNetworkType
地理位置使用内置地图getLocation
 获取地理位置openLocation
摇一摇周边开启ibeaconstartSearchBeacons
 关闭ibeaconstopSearchBeacons
 监听ibeacononSearchBeacons
微信扫一扫调起微信扫一扫scanQRCode
微信卡券拉取使用卡券列表chooseCard
 批量添加卡券接口addCard
 查看微信卡包的卡券openCard
长按识别小程序圆形码

相关接口 3

用户分享时可获取当前web-view/的URL,即在onShareAppMessage回调中返回webViewUrl参数。

示例代码:

Page({  onShareAppMessage(options) {    console.log(options.webViewUrl)  }})

相关接口 4

在网页内可通过window.__wxjs_environment变量判断是否在小程序环境,建议在WeixinJSBridgeReady回调中使用,也可以使用JSSDK 1.3.2提供的getEnv接口。

示例代码:

// web-view下的页面内function ready() {  console.log(window.__wxjs_environment === 'miniprogram') // true}if (!window.WeixinJSBridge || !WeixinJSBridge.invoke) {  document.addEventListener('WeixinJSBridgeReady', ready, false)} else {  ready()}// 或者wx.miniProgram.getEnv(function(res) {  console.log(res.miniprogram) // true})

Bug & Tip

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

 

常见错误:

  1. 打开的域名没有在小程序管理后台设置业务域名(注意是业务域名,不是服务器域名)

  2.  
  3. 打开的页面必须为https服务

  4.  
  5. 打开的页面302过去的地址也必须设置过业务域名

  6.  
  7. web-view空白问题,请升级微信客户端到 6.5.16

  8.  
  9. 页面可以包含iframe,但是iframe的地址必须为业务域名

  10.  
  11. web-view不支持支付能力,web-view的API能力见web-view的文档说明

  12.  
  13. 开发者自己检查自己的https服务是否正常,测试方法:普通浏览器打开对应的地址

  14.  
  15. 如果web-view使用了公众号授权的服务,开发者工具提示网页开发者的问题,请见:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1455784140

 

关于web-view的问题,大家可以集中在这个帖子留言,为了保证高效查问题,请提供以下信息:

  1. web-view的src地址

  2.  
  3. 后台配置的业务域名是否设置成功

  4.  
  5. 微信的版本

  6.  
  7. 遇到问题的小程序APPID以及复现的微信号

  8.  
  9. 出问题的错误提示信息是什么

  10.  
  11. 后台设置失败问题,请提供小程序APPID以及遇到问题的时间点。

                                                       

版权声明

即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。

产品经理

手机 : 13312967497

擅长 : 小程序流量变现

扫码领取礼包

热门模板

  • 头条
  • 搜狐
  • 微博
  • 百家
  • 一点资讯
  • 知乎