我正在尝试集成一家银行的支付网关集成。但是WKWebView不会加载这个网址。
我尝试在WKWebView中加载的URL是
这是网址:http://www.mpenagarpalika.gov.in/EasyPay20/EncDataPage.jsp?copr_id=3163&requestId=XXXX&customerRefNo=XXXX&amount=3937.000&version=1.0&type=PRD¤cy=INR&returnURL=http%3a%2f%2fwww.mpenagarpalika.gov.in%2fwt_easypay1res%2fgetdecrypt&prePopulatedInfo=1000000001%7c0274%7cW10000011447%7cINR%7c3937.000&reserveField1=MN&reserveField2=WTax&reserveField3=Water_Tax&reserveField4=समीम&reserveField5=वार्ड%20क्र%2006%20%20जवाहरलाल&bankReferenceNumber=W10000011447&fromSenderIP=99.199.255.199
当我尝试在笔记本电脑浏览器上运行相同的URL时,它工作得很好。
我尝试过以下选项:
let hiturl = paymentPageURL.addingPercentEncoding(withAllowedCharacters: CharacterSet(charactersIn: "!*'();:@&=+$,/?%#[]{} ").inverted)
let hiturl = paymentPageURL.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)我做错了什么?
发布于 2019-05-31 15:15:42
我只是为您带来了一个经过测试的解决方案。请尝试以下代码:
let sampleURL = "http://www.mpenagarpalika.gov.in/EasyPay20/EncDataPage.jsp?copr_id=3163&requestId=XXXX&customerRefNo=XXXX&amount=3937.000&version=1.0&type=PRD¤cy=INR&returnURL=http%3a%2f%2fwww.mpenagarpalika.gov.in%2fwt_easypay1res%2fgetdecrypt&prePopulatedInfo=1000000001%7c0274%7cW10000011447%7cINR%7c3937.000&reserveField1=MN&reserveField2=WTax&reserveField3=Water_Tax&reserveField4=समीम&reserveField5=वार्ड%20क्र%2006%20%20जवाहरलाल&bankReferenceNumber=W10000011447&fromSenderIP=99.199.255.199/"
if let encoded = urlString.addingPercentEncoding(withAllowedCharacters: .urlFragmentAllowed),
let myURL = URL(string: encoded)
{
print(myURL)
let myRequest = URLRequest(url: myURL)
myWebView.load(myRequest)
}还有一件更重要的事情,请不要忘记在info.plist中添加下面的代码行,以便于延迟加载,否则WKWebView无法加载url。
<key>NSAppTransportSecurity</key>
<dict>
<!--Include to allow all connections (DANGER)-->
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>发布于 2019-05-31 14:26:53
对此的解决方案是: url中不同语言的所有字符都应该是base64编码的。
https://stackoverflow.com/questions/56388973
复制相似问题