我正在开发一个使用地理定位的 Ionic 应用程序,基于我的 config.xml 和一个额外的 edit-config 元素,我在我的 info.plist 文件中得到以下三个键:
- NSLocationWhenInUseUsageDescription :将在使用应用时使用位置。
- NSLocationAlwaysUsageDescription:此应用需要持续访问您的位置以便跟踪您的位置,即使屏幕关闭或应用在后台也是如此。
- NSLocationAlwaysAndWhenInUseUsageDescription:此应用需要持续访问您的位置以便跟踪您的位置,即使屏幕关闭或应用在后台也是如此。
LocationWhenInUse 键是我添加的,但其他两个键来自其他地方。这是我的相关 config.xml:
...
<platform name="ios">
<edit-config file="*-Info.plist" mode="merge" target="NSLocationWhenInUseUsageDescription">
<string>Location will be used while app is in use.</string>
</edit-config>
...
</platform>
...
<plugin name="cordova-plugin-geolocation" spec="^4.0.1">
<variable name="GEOLOCATION_USAGE_DESCRIPTION" value="Geolocation will be used to determine your location" />
</plugin>
我想做的是删除两个“始终”权限。我唯一想问用户的是 Never/When In Use。
有什么方法可以使用 config.xml 删除两个“始终”元素?我不想每次进行生产 iOS 构建时都必须记住删除这两个 key 。
最佳答案
这些键是 placeholders added by cordova-diagnostic-plugin .
NSLocationAlwaysUsageDescription
中包含的字符串和 NSLocationAlwaysAndWhenInUseUsageDescription
仅当您请求在运行时“始终”使用位置时才会显示。
更新
从 .plist
中删除这些键, 你可以使用 cordova-custom-config .首先安装它:
cordova plugin add cordova-custom-config
然后添加<custom-config-file>
<platform name="ios">
下的区 block 删除不需要的键:
<platform name="ios">
<custom-config-file parent="NSLocationAlwaysUsageDescription" target="*-Info.plist" mode="delete"/>
<custom-config-file parent="NSLocationAlwaysAndWhenInUseUsageDescription" target="*-Info.plist" mode="delete"/>
关于ios - Ionic v3 从 PLIST 中删除特定键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54085138/