在webview中要调用支付宝客户端,如果知道做或者做过的可能觉得很简单。但是我根本没做过。对webview也不熟悉第一次用。
所以就做个笔记了,以后或许还能用到
写Webview的都要用到这个吧:
webview.setWebViewClient(new WebViewClient(){
}
webviewWebViewClient作用就是帮助WebView处理各种通知、请求事件的,具体来说包括:
onLoadResource
onPageStart
onPageFinish
onReceiveError
onReceivedHttpAuthRequest
shouldOverrideUrlLoading
在这里我们只要重写shouldOverrideUrlLoading方法:
webview.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
调用支付宝就是在这里写的:
webview.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if(parseScheme(url)){
Uri uri = Uri.parse(url);
Intent intent =new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);
}
else{
view.loadUrl(url);
}
return true;
}
parseScheme是干嘛的呢?就是判断该连接是否为支付宝网址如果是就调用支付宝客户端。
parseScheme:
public boolean parseScheme(String url)
{
if(url.contains("https://mapi.alipay.com"))
{
return true;
}
else{
return false;
}
}
https://mapi.alipay.com是支付宝官网。代码很好理解就是当前url连接中是否带有“https://mapi.alipay.com”这短字符。如果有就说明是调用支付宝了,然后我们就打开支付宝客户端。
这段代码就是调用支付宝客户端了
Uri uri = Uri.parse(url);
Intent intent =new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);