我的问题很简单。我需要一种方式来使用Ionic应用程序中的按钮打开和关闭GPS。我检查了文档并阅读了这个ng-cordova插件http://ngcordova.com/docs/plugins/geolocation/,但它们似乎没有这个功能。我是否错过了一些东西,或者甚至在Ionic Framework中可能呢?谢谢!如何以编程方式在Ionic Framework或Cordova中启用和禁用GPS
回答
据我所知,没有能力直接从您的应用程序禁用GPS。
如果您尝试允许用户禁用GPS,我通过将设置添加到localStorage
来实现此目的,用户可以在我的应用程序的设置页面上更改该设置。每次我在我的位置工厂检查GPS时,如果设置被禁用,我会检查设置并运行错误回调。
可能会有某种呼叫可以自动打开设备上的位置设置页面,因为我已经看到其他应用程序这样做,但我不确定Cordova/Ionic是否支持该设置。
Hi @ SM3RKY!从我的理解你的答案..你有一个GPS(开/关)在你的应用程序的设置页面。此设置与设备的GPS设置无关。因此,简而言之,只有当设备的GPS设置已打开但您仍然无法打开设备的GPS设置时,您的应用程序的GPS设置才有效。这有点像告诉你的应用程序使用或不使用GPS,即使它已启用。我对么? – balfonso
是的,这是正确的,这是你正在寻找,或者你是否尝试启用设备的GPS设置从它的应用程序被禁用,因为我不确定你是否可以做后者 – SM3RKY
本来我想要在应用程序内部直接开启/关闭GPS。但在@Joerg评论后,我意识到我需要做更多的研究,并最终得出结论,后者(打开设置页面)将是最佳选择。我还没有申请,但在我的应用程序呢。在此期间,我已经转向其他任务,但以后肯定会应用它。在这一点上,我觉得可能已经有一个插件,但实际上Ionic和Cordova没有进行任何搜索。感谢您的帮助顺便说一句:D – balfonso
经过研究,我意识到在Ionic(至少现在不是)开启/关闭应用程序的位置是不可能的,所以最好的选择是打开设备位置设置,因为您不仅可以更改您的GPS状态,您也可以更改功率和精度。
你可以使用cordova-diagnostic-plugin这个插件(有很好的文档)来操作设备设置,如wifi,蓝牙,GPS。
我希望它有帮助!
我想根据我的要求自动打开GPS。
所以我用科尔多瓦 - 插件请求定位精度
当GPS关闭时,它要求用户打开GPS..It对我非常有帮助..
Ionic1
https://github.com/dpa99c/cordova-plugin-request-location-accuracy
Ionic2
https://ionicframework.com/docs/native/location-accuracy/
顺祝商祺....
是在离子3测试这个插件Location Accuracy ,该位置在没有通过设置页面的情况下被启用,这回答了可以以编程方式启用GPS。这是我通过检查是否使用Diagnostic plugin启用位置后导航到模态页面后使用的代码示例。
位置auth.ts
import { Component } from '@angular/core';
import { IonicPage,
ViewController } from 'ionic-angular';
import { LocationAccuracy } from '@ionic-native/location-accuracy';
@IonicPage({
name: 'location-auth'
})
@Component({
selector: 'page-location-auth',
templateUrl: 'location-auth.html',
})
export class LocationAuthPage {
constructor(private locationAccuracy: LocationAccuracy,
public viewCtrl: ViewController) {}
requestAccuracy() {
this.locationAccuracy.canRequest().then((canRequest: boolean) => {
if(canRequest) {
this.locationAccuracy.request(this.locationAccuracy.REQUEST_PRIORITY_HIGH_ACCURACY).then(() => {
console.log('Request successful.')
this.closeModal();
},
error => {
console.log('Error requesting location permissions', error)
this.closeModal();
}
);
}
});
}
closeModal() {
this.viewCtrl.dismiss();
}
}
位置auth.html
<ion-header>
<ion-navbar color="primary">
<ion-title>GPS Authorization</ion-title>
</ion-navbar>
</ion-header>
<ion-content padding>
<p>Your Location is not enabled yet, please turn on your gps location.</p>
<button large
ion-button
block
(click)="requestAccuracy()">Turn on your GPS</button>
</ion-content>
到目前为止,我测试的Android手机上。让我知道,如果iOS的工作方式。
- 1. 如何在rooted android上以编程方式禁用/启用gps?
- 2. 以编程方式启用/禁用Log4jLogger?
- 3. 如何以编程方式启用和禁用USB在Android应用程序
- 4. 以编程方式开启/关闭GPS
- 5. 如何以编程方式启用/禁用Windows功能
- 6. 如何以编程方式启用/禁用Azure功能
- 7. 如何以编程方式启用/禁用IE代理设置?
- 8. 如何以编程方式启用/禁用移动数据
- 9. 在macOS中以编程方式启用,禁用和启动服务
- 10. 以编程方式启用和禁用某些@ RabbitListener的Spring?
- 11. 以编程方式启用/禁用键盘声音和振动
- 12. 以编程方式启用和禁用自动旋转?
- 13. 如何在android中以编程方式自动开启和关闭gps
- 14. 我怎样才能启用禁用GPS在编程方式在Android?
- 15. 如何以编程方式在Android中启用/禁用辅助功能服务
- 16. 在Windows 7上以编程方式启用/禁用连接
- 17. Ionic/Cordova:无法以编程方式触发iOS键盘
- 18. 以编程方式启用/禁用沉浸模式
- 19. Android的启用和禁用GPS
- 20. 以编程方式启用GPS(无导航到位置设置)
- 21. 谷歌地图是以编程方式启用GPS?
- 22. 以编程方式检查iPhone是否已启用GPS
- 23. 如何在iOS中以编程方式启用睡眠模式?
- 24. 我可以通过我的应用程序以编程方式启用GPS吗?
- 25. 如何在运行时以编程方式启用/禁用Firebug Lite?
- 26. 如何以编程方式禁用/启用Android中的物理键盘?
- 27. 如何在android中以编程方式禁用拼写校正
- 28. 如何在C++中以编程方式禁用崩溃转储?
- 29. 以编程方式启用/禁用实体代理
- 30. 以编程方式启用/禁用蓝牙配置文件
从您的应用程序无法启用GPS。用户必须转到设备的设置。 – Joerg
Hi @Joerg!感谢您的快速回复。我希望你不介意,但你是否碰巧有一些支持文档或链接来巩固你的答案?这不是我怀疑你的答案(我真的认为情况是这样),但它会很棒,不是吗?而且,我还需要向客户展示某些内容,以及为了文档的缘故=)。谢谢! – balfonso