Bunun için bir GitHub projesini oluşturduk. https://github.com/BKRApps/WKWebView-JS. Daha fazla bilgi için kontrol edin.
Güncelleme JavaScript:
function getMobileVersion(){
webkit.messageHandlers.VersionHandler.postMessage({})
}
function receivedMobileVersion(mobileVersion){
//here you will be getting the mobile version. Then execute the logic.
// i have added this only to cross check the version. you don't need to add this.
if(mobileVersion === true) {
webkit.messageHandlers.VerifyHandler.postMessage({version:mobileVersion})
}
}
getMobileVersion()
WKWebView Yapılandırma için aşağıdaki kodu ekleyin:
configuration.userContentController.add(self, name: "VersionHandler")
// i have added this only to cross check the version. you don't need to add this.
configuration.userContentController.add(self, name: "VerifyHandler")
Güncelleme WKScriptMessageHandler temsilci:
func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) {
switch message.name {
case "VersionHandler":
let mobileVersion = true //write the version logic and send the true or false.
let sendMobileVersionScript = "receivedMobileVersion(\(mobileVersion))"
self.wkWebView?.evaluateJavaScript("\(sendMobileVersionScript)", completionHandler: { (any, error) in
print("hello")
})
case "VerifyHandler":
print(message.body) // i have added this only to cross check the version. you
default:
break;
}
}
daha fazla bilgi için: http://igomobile.de/2017/03/06/wkwebview-return-a-value-from-native-code-to-javascript/
@jakir hussain, Örnek kod ve projeyi sağladım. Buna bir bak. –
sorumu yanıtım GetMobileVersion() javascript'ten bir çağrıdır ve arama başarılıysa, iOS'taki true –
olarak IsCallByMobileApp değerini ayarlayacaktır, Android'de olduğu gibi JS'den doğrudan yerel bir yöntemi arayamazsınız. Lütfen oluşturduğum örnek uygulamaya bakın, ihtiyaçlarınızı karşılayacaktır. Herhangi bir sorunla karşılaşırsanız bana bildirin. –