支付宝跳转
基礎API跳轉
web-view
支付寶小程序想要跳轉H5頁面,之前只用過 web-view,內嵌H5,這種方式需要配置域名白名單,并且在外鏈域名的根目錄放置校驗文件,H5不是自有頁面的話,就不能這樣去實現。
my.ap.openURL
相對于 web-view,還有一種跳轉H5的方式, my.ap.openURL,不需要配置域名,但是非支付寶官網頁面只有部分符合開放類目的小程序可以使用,且需要到開放平臺配置 openURL 白名單。已知目標頁面的 URL 或 scheme,可以使用 my.ap.openURL。
跳轉到支付寶官方 H5 頁面是不需要配置白名單的。
web-view 和 my.ap.openURL 兩者比較
兩者都有不同的權限要求,下面是從文檔拷過來的優劣對比表格,可以對照著選用合適的方式。
跳轉方式 優勢 劣勢
內嵌H5頁面,使用 web-view 內嵌H5 流量歸屬于小程序本身。不限行業,無需審批。可以在H5頁面上調用部分小程序的接口能力。 需要完成 H5域名配置
外跳H5頁面,使用 my.ap.openURL 外跳H5 無需H5域名配置。可以免審跳轉支付寶官方H5運營頁面。 流量不再歸屬于小程序本身。跳轉到非支付寶官方頁面只針對部分行業開放,并且需要完成平臺側審批流程(官方H5運營頁面無此限制)。
my.ap.navigateToAlipayPage
my.ap.navigateToAlipayPage 是用于跳轉到支付寶官方業務或運營活動頁面的 API。這里利用不需要配置白名單的域名和scheme語法可以實現跳轉。
JSAPI跳轉
JSAPI 是支付寶錢包提供的豐富的原生API功能,開發者可以使用它們方便調用支付寶提供的各種能力,達到媲美原生應用的體驗,如頁面跳轉,支付功能等。
其中有一個跳轉頁面的API,pushWindow,用來打開一個新的頁面,系統自帶轉場動畫。
注意點
scheme 跳轉請盡量使用 location.href 而不是 pushWindow。用 schema 的方式打開頁面已經禁止使用,僅用于向下兼容老業務。
與 location.href 的區別,pushWindow 類同于 PC 瀏覽器的新開標簽頁,每個 window 都是一個新的標簽頁,因此原頁面僅僅是被壓到后臺,狀態始終保持,JS 也會繼續運行。location.href 則是在當前標簽頁直接跳轉。
JSAPI是給H5使用的,而不是支付寶小程序。
現有的功能代碼這樣使用,應該是因為白名單限制,基礎API中的前兩種方式都不適合,才被迫使用JSAPI和禁止使用的scheme的。navigateToAlipayPage 是最近新發的文章里才看到可以支持支付寶小程序跳轉H5連接(無需添加白名單) 。但是 navigateToAlipayPage 也已經不維護,而是用 openURL 替代。
在小程序直接使用https鏈接會導致頁面訪問受限,無法打開,用scheme的方式可以跳過限制。但是不應該這么做,只是單純的記錄一下有這種操作。
startApp
需要申請startApp權限,可以跳轉任意URL
總結
綜上,跳轉方式需具體情況具體分析,選擇能力范圍內最適合的方式,盡量不要選擇禁用和停止維護的方法。這里不討論支付寶官方頁面,對自己人并沒有太多限制。
跳轉方式 適用范圍
web-view 方便在H5根目錄下放置校驗文件
my.ap.openURL 在限制類目范圍內
my.ap.navigateToAlipayPage 無限制,但是此API已停止維護
pushWindow 無限制,但是pushWindow 禁止使用scheme的方式打開頁面
startApp 可以申請到支付寶的startApp權限,很難
總結
- 上一篇: 一个应届生的应聘:直飞Google总部[
- 下一篇: VR、AR、MR、XR、ER