1

大家好,我希望你能帮助我。

我有一个打开网站“example.com”的 Wkwebview。本网站包含一个包含许多功能的 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;
}

我可以navigator.geolocation.getCurrentPosition在本机应用程序中显示经度和纬度。问题是 WKwebview 总是询问我是否允许找到我(请注意,该应用程序已经有权找到我,它总是询问的 WebView)

请求许可

我的问题是如何在没有权限请求的情况下将数据从应用程序传输到 Javascript。我读了一些关于WKWebViewConfiguration或关于 evaluateJavaScript(_:completionHandler:)或关于的东西,NSBundle and NSURLRequest但什么是正确的方法或有更好的方法?请帮助我,我不知道如何继续

4

1 回答 1

0

通过使用 evaluateJavaScript(),您只能在 WKWebView 中运行任何 JavaScript 并在 Swift 中获取结果。这可以是任何 JavaScript,这意味着您可以直接挖掘页面并提取您需要的任何信息。

这是一个例子:

webView.evaluateJavaScript("document.getElementById('someElement').innerText") { (result, error) in
    if error != nil {
        print(result)
    }
}

注意:请传递正确的 javascript 以获取值,否则您可能会返回 nil

于 2017-12-29T13:14:55.467 回答