@Tyhj
2017-04-18T17:22:40.000000Z
字数 1248
阅读 2147
Android
原文:https://www.zybuluo.com/Tyhj/note/726927
最近App用到支付宝,有个方法还是挺好的,后台写好了逻辑,给一个网址,移动端来调用就好了。可以打开手机支付宝支付也可以在网页上支付。
WebSettings webSettings = web_result .getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setUseWideViewPort(true); //将图片调整到适合webview的大小
webSettings.setLoadWithOverviewMode(true); // 缩放至屏幕的大小
webSettings.setDisplayZoomControls(false); //隐藏原生的缩放控件
web_result.loadDataWithBaseURL(null, html, "text/html", "utf-8", null);
web_result.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);
web_result.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
Log.e("加载的网页",url);
if (url.contains("platformapi/startApp")) {
startAlipayActivity(url);
// android 6.0 两种方式获取intent都可以跳转支付宝成功,7.1测试不成功
} else if ((Build.VERSION.SDK_INT > Build.VERSION_CODES.M)
&& (url.contains("platformapi") && url.contains("startApp"))) {
startAlipayActivity(url);
} else {
view.loadUrl(url);
}
return true;
}
});
// 调起支付宝并跳转到指定页面
private void startAlipayActivity(String url) {
Intent intent;
try {
intent = Intent.parseUri(url,
Intent.URI_INTENT_SCHEME);
intent.addCategory(Intent.CATEGORY_BROWSABLE);
intent.setComponent(null);
startActivity(intent);
} catch (Exception e) {
e.printStackTrace();
}
}
只需要一个URL就可以完成支付功能,就是支付成功没有什么反馈