您的位置:首页 > 移动开发

Webview调用支付宝客户端

2015-12-07 14:10 344 查看
在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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  支付宝 webview