uni-app下webview支付寶支付調起問題


前情

uni-app是我很喜歡的跨平台框架,它能開發小程序,H5,APP(安卓/iOS),對前端開發很友好,自帶的IDE讓開發體驗也很棒,公司項目就是主推uni-app。

因疫情影響,公司不能組織聚餐和其它福利活動,公司決定在公司自己園區app里接入友商的商城,通過商城來發放福利。

坑位

考慮到開發成本,我們會以webview的方式接入第三方商城,一切都很順利,但是在IOS下支付無法喚起支付寶,會報錯誤 Blocked a frame with origin "https://mclient.alipay.com" ,詳情見下圖:

論壇百度逛了一天,始終沒找到解決方法,差點決定走h5支付。

Why?

HBuilderX 2.3.4+版本已將iOS上所有webview的默認內核由UIWebview調整為WKWebview,但是支付寶支付不支持WKWebview下喚起支付寶。

解決方案

  1. 把WKWebview切換成UIWebview,但是你無法過審,顯然不行
  2. 通過偽造瀏覽器ua來繞過這個坑,把瀏覽器ua偽造成UIwebview或者Safari瀏覽器 論壇貼地址

關鍵代碼

uniapp可以通過配置manifest.json文件下useragent/useragent_ios/useragent_android來達到偽造的目地,此處只針對ios,所以選用useragent_ios 官方文擋


	"useragent_ios": {
			"value": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.57.2 (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2",
			"concatenate": true
		}

考慮到蘋果它自身的瀏覽器應該是在蘋果系統下最靠譜了,所以此處是偽造成Safari瀏覽器,親測成功調起,爬出一坑。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM