大家好,希望你们能帮助我。
我有一个 Wkwebview,它打开一个网站“example.com”。该网站包含一个具有许多功能的Javascript文件(Javascript不在应用程序的本地存储中,它是通过链接推荐的)。在这个网站上还有一个按钮可以找到您。如果我按下这个按钮,Javascript 函数“getLocation()”将被调用,见下文。此功能向您显示经度和纬度!
var x = document.getElementById("location");
function getLocation() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPosition);
}
}
function showPosition(position) {
x.innerHTML = "Latitude: " + position.coords.latitude +
"<br>Longitude: " + position.coords.longitude;
}
我能够在 native 应用程序中显示带有经度和纬度的 navigator.geolocation.getCurrentPosition
。问题是 WKwebview 总是要求我获得定位我的权限(请注意,该应用程序已经有权定位我,它始终是 WebView 提出的要求)
我的问题是如何在没有权限请求的情况下将数据从应用程序传输到 Javascript。我读过一些关于 WKWebViewConfiguration
或关于 evaluateJavaScript(_:completionHandler:)
或关于 NSBundle 和 NSURLRequest
的内容,但是什么是正确的方法,或者是否有一个更好的方法?
请帮助我,我不知道如何继续
最佳答案
通过使用evaluateJavaScript(),您只能在WKWebView中运行任何JavaScript并在Swift中获取结果。这可以是任何 JavaScript,这意味着您可以直接深入页面并提取所需的任何信息。
这是一个例子:
webView.evaluateJavaScript("document.getElementById('someElement').innerText") { (result, error) in
if error != nil {
print(result)
}
}
注意:请传递正确的 javascript 来获取值,否则您可能会返回 nil
关于javascript - WKwebview Javascript函数地理定位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48022302/