WKWebView не открывает URL со шрифтом деванагари в URL - PullRequest
0 голосов
/ 31 мая 2019

Я пытаюсь интегрировать интеграцию платежного шлюза банка. Но WKWebView не загружает URL.

URL, который я пытаюсь загрузить в 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&currency=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)

Может кто-нибудь помочь мне с решением? Что я делаю не так?

Ответы [ 2 ]

0 голосов
/ 31 мая 2019

Ну, я просто принесу проверенное решение для вас. Пожалуйста, попробуйте ниже коды ...

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&currency=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>
0 голосов
/ 31 мая 2019

Я решил проблему самостоятельно.

Решение проблемы - это.Все символы в url на другом языке должны быть закодированы в base64.

Спасибо

...