【案例描述】web
最近在將本身開發的WEB H5應用打包成快應用後,在使用Google帳號註冊、登陸時,卻遇到了以下圖的403報錯。chrome
【問題分析】json
從上圖錯誤頁面能夠看到,Google給出了緣由:Error:disallowed_useragent。也就是說Google對加載H5應用的瀏覽器UA進行了限制,並且它建議是chrome瀏覽器。顯然問題答案與UA有關係。瀏覽器
【解決方案】ide
1. 定義變量model, model表示用戶的手機型號,在data對象內添加model變量,代碼以下圖所示:ui
2. 給model賦值:在頁面的生命週期onInit()方法中獲取手機型號,代碼以下:this
1234 | onInit: function () { const device = require( "@system.device" ) const res = device.getInfoSync(); this .model=res.model; |
3. 設置web組件屬性 useragent 值爲 Mozilla/5.0 (Linux; Android 9; {{model}}) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.116 Mobile Safari/537.36)), 以下圖所示:spa
注意: useragent的值中使用了變量model,使用變量model的做用是獲取真實的手機型號,避免有些H5網頁在驗證useragent時獲取到的手機型號不對,從而給用戶帶來了困擾。3d
4. 設置 manifest.json 文件中的minPlatformVersion 值爲1068。code
5. 請確保使用的華爲快應用加載器版本爲2.2.0.304及以上版本。查看加載器版本的方式如右邊圖所示:
注意:1,2,3,4步驟完成後,若是登陸還有問題,請在web上
添加以下代碼:
multiwindow="true"
H5應用打包成快應用是海外很是重要的解決方案,在沒有GMS服務的手機上,依然能夠使用Google的服務,好比本案例中的Google帳號。
本案例的解決方案也適用於H5快應用其餘帳號登陸的一些問題。