web-view 组件是一个能够用来承载网页的容器,会自动铺满整个小程序页面。我的类型与海外类型的小程序暂不支持使用。javascript
客户端 6.7.2 版本开始,
navigationStyle: custom
对<web-view>
组件无效html
属性名 | 类型 | 默认值 | 说明 |
---|---|---|---|
src | String | webview 指向网页的连接。可打开关联的公众号的文章,其它网页需登陆小程序管理后台配置业务域名。 | |
bindmessage | EventHandler | 网页向小程序 postMessage 时,会在特定时机(小程序后退、组件销毁、分享)触发并收到消息。e.detail = { data } | |
bindload | EventHandler | 网页加载成功时候触发此事件。e.detail = { src } | |
binderror | EventHandler | 网页加载失败的时候触发此事件。e.detail = { src } |
示例代码:java
<!-- wxml --> <!-- 指向微信公众平台首页的web-view --> <web-view src="https://mp.weixin.qq.com/"></web-view>
相关接口 1web
<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> // javascript wx.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 | |
摇一摇周边 | 开启ibeacon | startSearchBeacons |
关闭ibeacon | stopSearchBeacons | |
监听ibeacon | onSearchBeacons | |
微信扫一扫 | 调起微信扫一扫 | 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
<web-view/>
组件上经过右键 - 调试,打开 <web-view/>
组件的调试。<web-view/>
,<web-view/>
会自动铺满整个页面,并覆盖其余组件。<web-view/>
网页与小程序之间不支持除JSSDK提供的接口以外的通讯。<web-view/>
的src后面加个#wechat_redirect解决。
常见错误:
打开的域名没有在小程序管理后台设置业务域名(注意是业务域名,不是服务器域名)
打开的页面必须为https服务
打开的页面302过去的地址也必须设置过业务域名
web-view空白问题,请升级微信客户端到 6.5.16
页面能够包含iframe,可是iframe的地址必须为业务域名
web-view不支持支付能力,web-view的API能力见web-view的文档说明
开发者本身检查本身的https服务是否正常,测试方法:普通浏览器打开对应的地址
若是web-view使用了公众号受权的服务,开发者工具提示网页开发者的问题,请见:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1455784140
关于web-view的问题,你们能够集中在这个帖子留言,为了保证高效查问题,请提供如下信息:
web-view的src地址
后台配置的业务域名是否设置成功
微信的版本
遇到问题的小程序APPID以及复现的微信号
出问题的错误提示信息是什么
后台设置失败问题,请提供小程序APPID以及遇到问题的时间点。