javascript - WKwebview Javascript函数地理定位

标签 javascript ios swift wkwebview wkwebviewconfiguration

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

我有一个 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 提出的要求)

ask for permission

我的问题是如何在没有权限请求的情况下将数据从应用程序传输到 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/

相关文章:

xcode - Swift - 取决于 TableView 单元格的详细 View Controller

ios - 如何创建预捆绑 Realm 文件并将数据上传到其中?

javascript - 如何使用 gulp 和 'main-bower-files' 选择缩小的依赖项?

ios 表数据不显示

javascript - jest.spyOn() 在 react 钩子(Hook)上调用时出现类型错误

ios - 将图像上传到 firebase 时 Swift 应用程序崩溃

ios - 从 Firebase 数据库中获取特定字段

ios - 在 iOS 中出现 View 后,inputAccessoryView 随动画一起出现

Javascript:用新值替换数组中的所有内容

javascript - 基于 span 内容的 jQuery 选择