一个web电商项目,在支付宝支付界面希望可以跳转到手机的支付宝客户端。
首先遵循webView的代理:webView.delegate = self
实现代理方法:
func webView(_ webView: UIWebView, shouldStartLoadWith request: URLRequest, navigationType: UIWebViewNavigationType) -> Bool {
let reqUrl = request.url?.absoluteString
if (reqUrl?.hasPrefix("alipays://"))! || (reqUrl?.hasPrefix("alipay://"))! ||
(reqUrl?.hasPrefix("http://wappaygw"))!{
// 跳转支付宝
UIApplication.shared.openURL(request.url!)
return false
}
return true
}
支付宝文档中写到跳转的API为alipays://
和alipay://
,然而并没有跳转。打印跳转支付宝页面时得倒了跳转的url开头为http://wappaygw
,加上这个判断之后点击支付宝之后会跳转到Safari然后打开支付宝客户端。可能是网页端接入支付宝SDK版本比较老的缘故。
网友评论