android WebView支付寶wap支付轉支付寶客戶端支付重寫WebViewClient的以下方法即可。可參考 支付寶平臺文檔商戶APP的WebView處理alipays協議
public boolean shouldOverrideUrlLoading(final WebView view, String url) {
// 獲取上下文, H5PayDemoActivity爲當前頁面
final Activity context = H5PayDemoActivity.this;
// ------ 對alipays:相關的scheme處理 -------
if(url.startsWith("alipays:") || url.startsWith("alipay")) {
try {
context.startActivity(new Intent("android.intent.action.VIEW", Uri.parse(url)));
} catch (Exception e) {
new AlertDialog.Builder(context)
.setMessage("未檢測到支付寶客戶端,請安裝後重試。")
.setPositiveButton("立即安裝", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Uri alipayUrl = Uri.parse("https://d.alipay.com");
context.startActivity(new Intent("android.intent.action.VIEW", alipayUrl));
}
}).setNegativeButton("取消", null).show();
}
return true;
}
// ------- 處理結束 -------
if (!(url.startsWith("http") || url.startsWith("https"))) {
return true;
}
view.loadUrl(url);
return true;
}