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

微信小程序内嵌网页webview

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

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

                                                                                       

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

 

客户端 6.7.2 版本开始,navigationStyle: custom 对 web-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

擅长 : 小程序流量变现

扫码领取礼包

热门模板

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