這是樓主寫的第一篇博文,我的博文特色就是一擊必中。如果你的問題是這樣的,那么快速瀏覽找到解決方案,如果不是,關(guān)閉文章,繼續(xù)去探索吧~~
問題:
Android在對接H5支付的時候,出現(xiàn)了這樣一個問題。明明是在android原生的調(diào)用的H5支付鏈接,可是報錯【請在微信外打開訂單,進行支付】,提示很明顯,在發(fā)起微信支付的時候,認為我是在微信中打開的,所以不讓支付。
上圖:

探索過程:
當然就是百度了,百度了好多次,竟然沒有發(fā)現(xiàn)這樣的問題。所有的回答全是,在瀏覽器打開,不要在微信打開??晌颐髅骶褪窃谧约簩懙腤ebView中打開的啊,真讓人頭大。
上圖:

問題原因:
原來是在進行webView設(shè)置的時候,多了這兩句代碼。
String ua = settings.getUserAgentString();
settings.setUserAgentString(ua + " MicroMessenger/4.5.255");
問題剖析:
android通過微信內(nèi)置瀏覽器訪問網(wǎng)頁得到的user agent為
Mozilla/5.0 (Linux; U; Android 2.3.6; zh-cn; GT-S5660 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 MicroMessenger/4.5.255
也就是說,微信是通過判斷MicroMessenger關(guān)鍵字來鑒別是不是微信內(nèi)置瀏覽器,所以才會報錯。
解決方案:
去掉這個用戶代理(userAgent)就行了。
總結(jié):
自己不了解的代碼不要隨便拷貝過來就加上,一定要弄明白這些代碼的意義,不然你出現(xiàn)的問題,度娘都沒法幫你解決。