带有PhoneGap的iPhone上的位置许可警报

bol*_*er2 52 iphone core-location cordova

你如何更改警报上的字符串说:

(Appname /无论是什么)想要使用您当前的位置

当然,我只想更改appname部分.因为当你使用PhoneGap框架时,字符串非常难看,如下所示:

/var/mobile/Applications/157EB70D-4AA7-826E-690F0CBE0F/appname.app/www/index.html

有人有想法吗?

Piu*_*ere 92

设备准备好后,您需要进行地理定位.例如,以下Jquery代码将在没有令人讨厌的警报的情况下进行地理定位:

$(function(){
  document.addEventListener("deviceready", onDeviceReady, false);
})

function onDeviceReady() {
  navigator.geolocation.getCurrentPosition(onSuccess, onError);     
}

function onSuccess(position) {
  // your callback here 
}

function onError(error) { 
  // your callback here
}
Run Code Online (Sandbox Code Playgroud)

  • 这很完美!无法理解为什么不将此标记为答案.. (4认同)
  • 优秀的答案,解决了我的问题.为什么正确答案不在顶部? (2认同)
  • 是! 我同意,这应该被标记为正确的答案.谢谢,Pius; 这解决了我的问题. (2认同)
  • 工作就像一个魅力,uggly消息消失了! (2认同)

小智 17

在phonegap 3.0上,需要遵循Pius Uzamere的答案并安装插件.

cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-geolocation.git
Run Code Online (Sandbox Code Playgroud)

否则你将获得双重权限请求.

  • 如果使用PhoneGap Build,请不要忘记将该插件添加到config.xml文件中:<gap:plugin name ="org.apache.cordova.geolocation"/> (2认同)

Sho*_*san 13

我只是按照文档解决了它.打开终端并cd到您的项目并输入以下命令. $ cordova插件添加https://git-wip-us.apache.org/repos/asf/cordova-plugin-geolocation.git

还要在config.xml中添加它

<feature name="Geolocation">
    <param name="ios-package" value="CDVLocation" />
</feature>
Run Code Online (Sandbox Code Playgroud)

它将解决这个问题.:)

资料来源:http://docs.phonegap.com/en/3.0.0/cordova_geolocation_geolocation.md.html#The%20Command-line%0AInterface


tra*_*ash 8

虽然这个问题比较老,但我在这里这里都发现了类似的问题.

对于我的解决方案,我必须添加NSLocationWhenInUseUsageDescription到.plist文件.但是,我想,因为我的地理定位插件已经过时,所以我必须先更新它.然后我不得不删除/添加Cordova iOS平台.最后,我添加NSLocationWhenInUseUsageDescription到.plist文件中.

首先,删除/添加地理位置插件:

cordova plugin rm org.apache.cordova.geolocation
cordova plugin add org.apache.cordova.geolocation
Run Code Online (Sandbox Code Playgroud)

其次,删除/添加iOS平台:

cordova platform rm ios
cordova platform add ios
Run Code Online (Sandbox Code Playgroud)

最后,添加NSLocationWhenInUseUsageDescription到.plist.打开/platforms/ios/{project}/{project}-Info.plist并添加以下内容:

<key>NSLocationWhenInUseUsageDescription</key>
<string>[App Name] would like to access your location when running and displayed.</string>
Run Code Online (Sandbox Code Playgroud)

有关与vs的详细信息,请参阅此iOS Developer Library链接.NSLocationWhenInUseUsageDescriptionNSLocationAlwaysUsageDescriptionNSLocationUsageDescription


Tou*_*Pal 7

最后解决了这个问题.

在index.html中移动你的cordova.js

<script src ="cordova.js"> </ script>

作为要包含的第一个js文件(特别是确保它在地图上方包括js).这将确保提示只显示一次.

不需要其他codejs或ondeviceready.


pra*_*ash -3

您的项目的捆绑包显示名称是什么?

尝试手动更改默认值${PRODUCT_NAME}并查看..

使用位置警报的权限仅选择您的捆绑包显示名称!