Cordova iOS 关于当前位置的通知

Posted

技术标签:

【中文标题】Cordova iOS 关于当前位置的通知【英文标题】:Cordova iOS Notification about current location 【发布时间】:2019-06-27 13:41:14 【问题描述】:

所以在任何人大喊重复之前,我已经阅读了几个小时的内容,我确保所有代码都在 document.addEventListener("deviceready" 中,并且仍然遇到这个问题,我使用最新版本的科尔多瓦和地理定位插件 cordova install cordova-plugin-geolocation

我已将我的 config.xml 设置为包含

<edit-config target="NSLocationWhenInUseUsageDescription" file="*-Info.plist" mode="merge">
    <string>Allows events near you to be located.</string>
</edit-config>

我已经仔细检查了app_name-Info.plist,它确实包含NSLocationWhenInUseUsageDescription 的值,因此 config.xml 有效并且正在运行。

但是我仍然看到'app_name.app/www/index.html' Would Like To Use Your Current Location 通知用户

我使用的代码是

var options = maximumAge: 0, timeout: 10000, enableHighAccuracy:true;
document.addEventListener("deviceready", function()
    navigator.geolocation.getCurrentPosition(function(e)
        var currLocBtn = $('<div id="currentLocBtn">Use Current Location</div>');
        currLocBtn.click(function()
            $("#lat").val(e.coords.latitude);
            $("#lng").val(e.coords.longitude);
            $("#locInp").val("").attr("placeholder", "Current Location");
            $("#cordsText").val("Current Location");
            $("#cordsDisplay").text("Current Location");
        );
        $("#searchoverlay").prepend(currLocBtn);
    , function(), options);
, false);

如果我跑 navigator.geolocation.getCurrentPosition((e) =&gt; console.log(e), (e) =&gt; console.log(e)); 来自我的应用程序的网络检查器控制台,它的作用与科尔多瓦包装器不工作一样。

【问题讨论】:

很确定这是正常的吗?您有任何功能问题吗? 它应该通过 Codova 使用应用程序 SDK 定位系统,因此它使用 .plist 配置并说明 plist 中配置的内容,而不是使用浏览器本机 navigator.geolocation.getCurrentPosition 这是它在做什么,它是应该用它自己的覆盖浏览器本机。 我刚刚使用地理定位和一个 .js 文件制作了全新的 Cordova 应用程序,该文件包含一个调用 navigator.geolocation.getCurrentPosition 的“设备就绪”函数,它按您说的那样工作。一个简单的 javascript 运行时错误可能会导致您看到的问题 是的,但是我使用 Web Inspector 并且没有发生 JS 错误。 是的,已经解决了。 【参考方案1】:

所以这显然是由于构建系统弄乱了 xcode 项目造成的。使用准备和构建命令,我们没有链接到 xcode 项目的插件来解决这个问题,我不得不使用

cordova platform remove ios
cordova platform add ios

这迫使它删除并重建 xcode 项目文件并修复了问题。

【讨论】:

以上是关于Cordova iOS 关于当前位置的通知的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Cordova 显示状态栏通知 - Android 和 IOS

<Cord​​ova/CDVLocalStorage.h> 未找到

Cordova iOS 插件安装 pod install 静默退出

当用户从 Cordova 的 iOS 通知中心选择通知时更改状态

关于启动cordova项目 报CordovaError: No emulator images (avds) found

cordova、Firebase、FCM 插件 - 在 iOS 的通知栏中不显示通知