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以及遇到問題的時間點。