首先我们的webview需要设置一些基本的参数信息,例如支持js等
// 设置WebView属性,能够执行Javascript脚本
webview.getSettings().setJavaScriptEnabled(true);
...
ios端开发是能够直接调起手机支付宝,但是android端不能,根本原因我认为android启动app的方式是通过intent的方式,因此,我们需要做的是在webview加载时,获取支付宝返回的url,以此url作为我们启动支付宝支付view的url信息
webview.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
//不要加上下面注释掉的这句代码,会导致web界面报错
// view.loadUrl(url);
if (url.startsWith("http:") || url.startsWith("https:")) {
return false;
}
//请务必使用try、catch 因为该处返回的url可能为无效url或者手机没有安转支付宝导致webview闪退
try {
//通过意图调起支付宝
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(intent);
} catch (Exception e) {
}
return true;
}
});
}
网友评论