如何在应用程序启动时打开设备的位置?
Posted
技术标签:
【中文标题】如何在应用程序启动时打开设备的位置?【英文标题】:How to turn on the location of the device while the application is starting? 【发布时间】:2018-12-05 10:58:36 【问题描述】:我的 phonegap 应用程序的 config.xml 文件如下。
<description>
Online Abonelik, Borç Sorgulama, Fatura Ödeme, Tüketim Sorgulama v.b. pek çok işlem
</description>
<author href="http://www.infopark.com.tr" email="bilgi@infopark.com.tr">
Infopark
</author>
<preference name="permission" value="none" />
<plugin name="cordova-plugin-geolocation" spec="2.4.2" source="npm" />
<feature name="http://api.phonegap.com/1.0/geolocation" />
<preference name="orientation" value="default" />
<preference name="StatusBarOverlaysWebView" value="true" />
<preference name="StatusBarBackgroundColor" value="#000000" />
<preference name="StatusBarStyle" value="lightcontent" />
<preference name="detect-data-types" value="true" />
<preference name="android-windowSoftInputMode" value="adjustResize" />
<feature name="StatusBar">
<param name="ios-package" value="CDVStatusBar" onload="true" />
</feature>
<preference name="phonegap-version" value="cli-6.5.0" />
<icon src="uedasicon.png" />
<preference name="SplashScreenDelay" value="5000" />
<gap:config-file platform="ios" parent="CFBundleShortVersionString">
<string>107</string>
</gap:config-file>
<access origin="*" />
<gap:plugin name="cordova-plugin-whitelist" version="1.1.0" source="npm" />
<gap:plugin name="cordova-plugin-splashscreen" source="npm" />
<plugin name="cordova-plugin-whitelist" version="1" />
<allow-intent href="http://*/*" />
<allow-intent href="https://*/*" />
<allow-intent href="tel:*" />
<allow-intent href="sms:*" />
<allow-intent href="mailto:*" />
<allow-intent href="geo:*" />
<allow-navigation href="https://testoim.com.tr" />
<platform name="android">
<allow-intent href="market:*" />
</platform>
<platform name="ios">
<allow-intent href="itms:*" />
<allow-intent href="itms-apps:*" />
</platform>
</widget>
【问题讨论】:
How can I turn on the location of the device while the application is starting?
不清楚你的意思。您的意思是要确保在您的应用首次启动时启用设备位置设置(Android 上的定位模式/iOS 上的定位服务)?
是的,如果位置关闭,则必须发出警报并打开
【参考方案1】:
您可以使用cordova-diagnostic-plugin 来检查当前是否使用isLocationEnabled() 启用了位置设置,并且您可以使用registerLocationStateChangeHandler() 来监控位置设置的实时变化。
在 Android 或 iOS 上都无法在用户明确同意的情况下以编程方式打开设备位置设置。
但是,在 Android 上,您可以使用 cordova-plugin-request-location-accuracy 以编程方式请求开启定位模式或提高准确度级别。 这会向用户显示一个系统对话框“提高定位精度?” - 必须按“是”才能应用它。
在 iOS 上,无法以编程方式打开定位服务或直接在“设置”应用中打开定位服务页面。最好的办法(使用cordova-plugin-request-location-accuracy
)是显示一个原生 iOS 系统对话框,让用户可以选择在设置应用程序中直接打开隐私页面,其中包含打开定位服务的开关。
【讨论】:
以上是关于如何在应用程序启动时打开设备的位置?的主要内容,如果未能解决你的问题,请参考以下文章