從基礎(chǔ)庫(kù) 2.11.3 開始支持
支持平臺(tái):Android、iOS:微信8.0.24及以上版本
可將小程序頁(yè)面分享到朋友圈。適用于內(nèi)容型頁(yè)面的分享,不適用于有較多交互的頁(yè)面分享。
設(shè)置分享狀態(tài)
小程序頁(yè)面默認(rèn)不可被分享到朋友圈,開發(fā)者需主動(dòng)設(shè)置“分享到朋友圈”。頁(yè)面允許被分享到朋友圈,需滿足兩個(gè)條件:
- 首先,頁(yè)面需設(shè)置允許“發(fā)送給朋友”。具體參考
Page.onShareAppMessage
接口文檔 - 滿足條件 1 后,頁(yè)面需設(shè)置允許“分享到朋友圈”,同時(shí)可自定義標(biāo)題、分享圖等。具體參考
Page.onShareTimeline
接口文檔
滿足上述兩個(gè)條件的頁(yè)面,可被分享到朋友圈。
單頁(yè)模式
用戶在朋友圈打開分享的小程序頁(yè)面,并不會(huì)真正打開小程序,而是進(jìn)入一個(gè)“小程序單頁(yè)模式”的頁(yè)面,“單頁(yè)模式”有以下特點(diǎn):
- “單頁(yè)模式”下,頁(yè)面頂部固定有導(dǎo)航欄,標(biāo)題顯示為當(dāng)前頁(yè)面 JSON 配置的標(biāo)題。底部固定有操作欄,點(diǎn)擊操作欄的“前往小程序”可打開小程序的當(dāng)前頁(yè)面。頂部導(dǎo)航欄與底部操作欄均不支持自定義樣式。
- “單頁(yè)模式”默認(rèn)運(yùn)行的是小程序頁(yè)面內(nèi)容,但由于頁(yè)面固定有頂部導(dǎo)航欄與底部操作欄,很可能會(huì)影響小程序頁(yè)面的布局。因此,請(qǐng)開發(fā)者特別注意適配“單頁(yè)模式”的頁(yè)面交互,以實(shí)現(xiàn)流暢完整的交互體驗(yàn)。
- “單頁(yè)模式”下,一些組件或接口存在一定限制,詳情見(jiàn)下文單頁(yè)模式下的限制章節(jié)
頁(yè)面適配
可通過(guò)判斷場(chǎng)景值等于 1154 的方法來(lái)進(jìn)行頁(yè)面適配。另外,在單頁(yè)模式下,可設(shè)置頂部導(dǎo)航欄與頁(yè)面的相交狀態(tài),具體參考 navigationBarFit 配置。
還需留意的是,在單頁(yè)模式下,wx.getSystemInfo 接口返回的 safeArea 為整個(gè)屏幕空間。
單頁(yè)模式下的限制
小程序“單頁(yè)模式”適用于純內(nèi)容展示場(chǎng)景,可實(shí)現(xiàn)的交互與接口能力有限,因此存在如下限制:
- 頁(yè)面無(wú)登錄態(tài),與登錄相關(guān)的接口,如
wx.login
均不可用;云開發(fā)資源需開啟未登錄訪問(wèn)方可在單頁(yè)模式下使用,詳見(jiàn)未登錄模式。 - 不允許跳轉(zhuǎn)到其它頁(yè)面,包括任何跳小程序頁(yè)面、跳其它小程序、跳微信原生頁(yè)面
- 不允許橫屏使用
- 若頁(yè)面包含 tabBar,tabBar 不會(huì)渲染,包括自定義 tabBar
- 本地存儲(chǔ)與小程序普通模式不共用
對(duì)于一些會(huì)產(chǎn)生交互的組件或接口,在點(diǎn)擊后調(diào)用時(shí),會(huì)彈 toast 提示“請(qǐng)前往小程序使用完整服務(wù)”。為達(dá)到良好的用戶體驗(yàn),請(qǐng)注意適配單頁(yè)模式的接口能力,請(qǐng)勿大量使用被禁用的接口或組件。
禁用能力列表:
分類 | 功能點(diǎn) |
---|---|
組件 | button open-type 、 camera 、 editor 、 form 、 functional-page-navigator 、 live-pusher 、 navigator 、 navigation-bar 、 official-account 、 open-data 、 web-view |
路由 | wx.redirectTo 、 wx.reLaunch 、 wx.navigateTo 、 wx.switchTab 、 wx.navigateBack |
界面 | 導(dǎo)航欄 、 Tab Bar |
網(wǎng)絡(luò) | mDNS 、 UDP 通信 |
數(shù)據(jù)緩存 | 周期性更新 |
媒體 | VoIP 、 wx.chooseMedia 、 wx.chooseImage 、 wx.saveImageToPhotosAlbum 、 wx.chooseVideo 、 wx.saveVideoToPhotosAlbum 、 wx.getVideoInfo 、 wx.compressVideo |
位置 | wx.openLocation 、 wx.chooseLocation 、 wx.startLocationUpdateBackground 、 wx.startLocationUpdate |
轉(zhuǎn)發(fā) | wx.getShareInfo 、 wx.showShareMenu 、 wx.hideShareMenu 、 wx.updateShareMenu |
文件 | wx.openDocument |
開放接口 | 登錄 、 小程序跳轉(zhuǎn) 、 用戶信息 、 支付 、 授權(quán) 、 設(shè)置 、 收貨地址 、 卡券 、 發(fā)票 、 生物認(rèn)證 、 微信運(yùn)動(dòng) 、 微信紅包 |
設(shè)備 | 藍(lán)牙 、 iBeacon 、 Wi-Fi 、 NFC 、 聯(lián)系人 、 剪貼板 、 電話 、 掃碼 |
廣告 | ad 、 wx.createRewardedVideoAd 、 wx.createInterstitialAd |
運(yùn)營(yíng)須知
分享朋友圈能力是為了滿足純內(nèi)容場(chǎng)景的分享訴求,濫用于營(yíng)銷、誘導(dǎo)等行為將會(huì)被打擊。
- 小程序提供的服務(wù)中,不得存在濫用分享違規(guī)行為。如強(qiáng)制用戶分享行為;分享立即獲得利益的誘導(dǎo)行為;以及通過(guò)明示或暗示的樣式來(lái)達(dá)到誘導(dǎo)分享目的的行為等。詳見(jiàn)《微信小程序平臺(tái)運(yùn)營(yíng)規(guī)范》
- 在“單頁(yè)模式”下,不得誘導(dǎo)或強(qiáng)制用戶點(diǎn)擊“打開小程序”,應(yīng)在“單頁(yè)模式”中盡可能呈現(xiàn)完整的內(nèi)容
注意事項(xiàng)
- 低版本微信客戶端打開時(shí),會(huì)進(jìn)入一個(gè)升級(jí)提示頁(yè)面
- 不支持在小程序頁(yè)面內(nèi)直接發(fā)起分享
- 自定義分享內(nèi)容時(shí)不支持自定義頁(yè)面路徑
- 存在 web-view 組件的頁(yè)面不支持發(fā)起分享
- 支持打開開發(fā)版、體驗(yàn)版,無(wú)權(quán)限人員進(jìn)入時(shí)頁(yè)面會(huì)提示無(wú)權(quán)限