支付之前没做过,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、 默认返回:return super.shouldOverrideUrlLoading(view, url); 这个返回的方法会调用父类方法,也就是跳转至手机浏览器,平时写webview一般都在方法里面写 webView.loadUrl(url); 然后把这个返回值改成下面的false。
2、返回: return true; webview处理url是根据程序来执行的。
3、返回: return false; webview处理url是在webview内部执行。
估计很多人犯过跟我一样的错误,细节很重要啊,这里备注一下吧