1. 程式人生 > >TV端呼叫支付寶掃碼支付

TV端呼叫支付寶掃碼支付

支付之前沒做過,TV端的更沒接觸過,現公司的方案是通過呼叫支付寶網頁掃碼轉移至手機支付,想來對前端來說,沒什麼大的問題,支付流程轉移到了後端嘛,誰能想到會遇到下面這個問題。

步驟如下:

1.訪問公司網頁

2.跳轉至支付寶支付頁面

3.刷出支付寶掃碼頁面

注意支付寶支付頁面是已經出來了,但是這個時候,立即跳到了下面的錯誤頁面,試過了n種方法都不得解,最後一位朋友給了啟發

解決方案:

就是很簡單的在shouldOverrideUrlLoading返回了false

@Override
			public boolean shouldOverrideUrlLoading(WebView view, String url) {
				/*payWeb.loadUrl(url);
				return true;*/
				return false;
			}

看看這個函式返回值的解釋吧

shouldOverrideUrlLoading方法在webview載入URL的時候可以截獲這個動作。
這裡主要說它的返回值的問題: 
1、 預設返回:returnsuper.shouldOverrideUrlLoading(view, url); 這個返回的方法會呼叫父類方法,也就是跳轉至手機瀏覽器,平時寫webview一般都在方法裡面寫 webView.loadUrl(url);然後把這個返回值改成下面的false。
2、返回: returntrue;  webview處理url是根據程式來執行的。
3、返回: returnfalsewebview處理url是在webview內部執行。

估計很多人犯過跟我一樣的錯誤,細節很重要啊,這裡備註一下吧