開放能力
web-view
功能說明: 承載網頁的容器。 會自動鋪滿整個小程序頁面。
參數及說明:
| 内容 | 類型 | 預設值 | 說明 |
|---|---|---|---|
| src | string | - | webview指向網頁的連結。 網頁需登入小程序管理後臺配置業務功能變量名稱 離線的H5網頁,以file://和/開頭的路徑(指向html頁面,如: file://xxx/index.html )。 需在app.json裡面配置staticPath内容(字串數組),如: ['xxx'] |
| bindmessage | eventhandler | - | 網頁使用 wx.miniProgram.postMessage 方法向小程序發送訊息時,小程序會在特定時機(小程序後退、元件銷毀、分享)觸發並收到訊息。 e.detail = { data },data 是多次 postMessage 的參數所組成的陣列 |
| bindload | eventhandler | - | 網頁載入成功時候觸發此事件。 e.detail = { src } |
| binderror | eventhandler | - | 網頁載入失敗的時候觸發此事件。 e.detail = { url, fullUrl },其中 fullUrl 為載入失敗時的完整 url |
| bindevent | eventhandler | - | 網頁使用 wx.miniProgram.sendWebviewEvent 方法向小程序傳送訊息時,小程序會觸發此事件。 e.detail = { data },data 是 sendWebviewEvent 的參數 |
TIP
- 網頁內iframe的功能變量名稱也需要配置到功能變量名稱白名單。
- 開發者工具上,可以在<web-view>組件上擊調試按鈕,打開<web-view>組件的調試。
- 每個頁面只能有一個<web-view>,< web-view>會自動鋪滿整個頁面,並覆蓋其他組件。
- <web-view>網頁與小程序之間不支持除JSSDK提供的接口之外的通信。
- 避免在連結中帶有中文字元,在iOS中會有打開白屏的問題,建議加一下encodeURIComponent。
- 相關接口詳見 JSSDK接口說明
- <web-view>組件所在頁面的導航欄標題優先順序:< title></title>(H5網頁)> wx.navigationBarTitleText(miniprogram)> navigationBarTitleText(page.json)> navigationBarTitleText(app.json)
- src填寫靜態資源地址時必須以file://和/開頭,且具體到某個html頁面,靜態資源需要在小程序的根目錄下,同時需要在app.json中配置staticPath内容(string[],靜態資源的目錄名稱),可配置多個靜態資源,靜態資源只支持在主包內,小程序上傳時所有靜態資源和小程序一同上傳,且整體大小不能超過小程序的整包大小限制。
授權
部分接口需要經過用戶授權同意才能調用,我們把這些接口按使用範圍分成多個scope,用戶選擇對scope來進行授權,當授權給一個scope之後,其對應的所有接口都可以直接使用。
TIP
- 如果用戶未接受或拒絕過此許可權,會彈窗詢問用戶,用戶按一下同意後方可調用接口;
- 如果用戶已授權,可以直接調用接口;
- 如果用戶已拒絕授權,則不會出現彈窗,而是直接進入接口fail回檔。 請開發者相容用戶拒絕授權的場景
獲取用戶授權設定
開發者可以使用wx.getSetting獲取用戶當前的授權狀態。
打開設定介面
用戶可以在小程序設定介面(「右上角」-「設定」)中控制對該小程序的授權狀態。
開發者可以調用wx.openSetting打開設定介面,引導用戶開啟授權。
提前發起授權請求
開發者可以使用wx.authorize在調用需授權API之前,提前向用戶發起授權請求。
scope清單
| scope | 對應接口 | 描述 |
|---|---|---|
| scope.userinfo | wx.getUserInfo | 用戶資訊 |
| scope.userLocation | wx.getLocation、wx.startLocationUpdate、wx.startLocationUpdateBackground | 獲取地理位置資訊。 |
| scope.userFuzzyLocation | wx.getFuzzyLocation | 獲取模糊地理位置資訊。 |
| scope.record | live-pusherwx or startRecord、wx.operateRecorder | 直播或者錄音 |
| scope.camera | camera | 相機組件 |
| scope.addPhoneCalendar | wx.addPhoneCalendar | 添加日誌 |
| scope.writePhotosAlbum | wx.saveImageToPhotosAlbum | 保存圖片到相册 |
| scope.bluetooth | wx.openBluetoothAdapter | 藍牙 |
| scope.chooseImage | wx.chooseImage | 選擇相册中的圖片 |
| scope.chooseVideo | wx.chooseVideo | 選擇相册中的視頻 |
| scope.chooseMedia | wx.chooseMedia | 從手機相册中選擇圖片或視頻 |
| scope.makeMedia | wx.makeMedia | 拍攝視頻或圖片 |
| scope.addPhoneContact | wx.addPhoneContact、wx.chooseContact | 添加/選擇聯絡人 |
授權有效期
一旦用戶明確同意或拒絕過授權,其授權關係會記錄在用戶端本地,直到删除小程序。
最佳實踐
在真正需要使用授權接口時,才向用戶發起授權申請,並在授權申請中說明清楚要使用該功能的理由。