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) => console.log(e), (e) => 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
<Cordova/CDVLocalStorage.h> 未找到
Cordova iOS 插件安装 pod install 静默退出
当用户从 Cordova 的 iOS 通知中心选择通知时更改状态
关于启动cordova项目 报CordovaError: No emulator images (avds) found