Flex AIR应用GPS定位功能(Android和IOS)
2023-09-14 08:56:50 时间
说明:
使用AIR进行GPS定位功能实现时,会经常判断GPS是否打开。一般的官方或者书上的介绍的方法,测试后,只能对Android系统进行判断,而对ios系统则无法进行判断。
经过研究测试,终于解决实现了能够同时适应于Android和ios系统的GPS定位功能。
实现:
1) 实例化Geolocation类,并添加监听,用于获取经纬度信息
![](http://img.blog.csdn.net/20140912104030281?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvenVpd3V5dWFu/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
注:geolocation = new Geolocation(); 该实例对象是全局声明,但必须是局部实例化,而不能把它声明为全局的变量实例化(即不能放在方法外)。这是因为 如果Geolocation对象被局部声明 (在一个方法内部),则该对象有可能被作为垃圾回收。
if (Geolocation.isSupported) 可用于判断该设备是否只是定位功能。
if (!geolocation.muted)可判断Android版本的GPS是否打开,对IOS版无效。
所以,在if (!geolocation.muted) 之后。需要添加另一个监听geolocation.addEventListener(StatusEvent.STATUS, geoStatusHandler); 事件为:对象将在设备(如摄像头或麦克风)或对象(如 LocalConnection 对象)报告其状态时调度 StatusEvent 对象。
该事件监听必须添加,添加了这个监听后,针对于ios设备,会在你启动该功能时,提示你是否要打开GPS定位功能。
2) 定位监听:
![](http://img.blog.csdn.net/20140912104102109?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvenVpd3V5dWFu/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
注: geolocation.addEventListener(GeolocationEvent.UPDATE, geoUpdateHandler); 是为设备添加事件监听,用于获取设备的经纬度信息;获取的经纬度值可以通过GeolocationEvent类的latitude和longitude属性方法得到。这里说明,当获取到值之后,需要把监听移除,避免设备不停的去获取经纬度值。
3) 设备权限和配置:
针对于android系统,需要添加定位和网络权限,访问GPS位置数据时需要ACCESS_FINE_LOCATION 许可。 而在访问无线网络位置数据时需要ACCESS_FINE_LOCATION 或ACCESS_COARSE_LOCATION。
![](http://img.blog.csdn.net/20140912104425271?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvenVpd3V5dWFu/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
针对于ios系统,你需要在应用程序描述符文件中添加两处设置:
![](http://img.blog.csdn.net/20141211215640542?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvenVpd3V5dWFu/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
具体关于AIR 地理定位API(Geolocation API)的使用方法,可以参见:
StoreKit:iOS应用内推广其他App 在iOS应用中,要推广其他App有两种途径,一种是直接跳转到AppStore软件的对应App商品页,还有一种是在当前应用内内嵌一个App商品页。相比第一种方式,第二种方式的体验更好,并且不会打断用户对当前应用的使用。
uniapp打包ios应用的证书获取方法和上架流程 uniapp目前支持多端开发,可以开发H5网页,也可以开发小程序应用,还可以开发APP。假如需要开发ios app,则需要一个打包的证书和证书profile文件,还需要将这个打包好的APP上架app store。uniapp官网的例子中,生成证书和上架都需要使用mac电脑,而且操作比较复杂,这里我们这篇文章将教会大家无mac电脑生成开发证书和上架的例子。
使用AIR进行GPS定位功能实现时,会经常判断GPS是否打开。一般的官方或者书上的介绍的方法,测试后,只能对Android系统进行判断,而对ios系统则无法进行判断。
经过研究测试,终于解决实现了能够同时适应于Android和ios系统的GPS定位功能。
实现:
1) 实例化Geolocation类,并添加监听,用于获取经纬度信息
注:geolocation = new Geolocation(); 该实例对象是全局声明,但必须是局部实例化,而不能把它声明为全局的变量实例化(即不能放在方法外)。这是因为 如果Geolocation对象被局部声明 (在一个方法内部),则该对象有可能被作为垃圾回收。
if (Geolocation.isSupported) 可用于判断该设备是否只是定位功能。
if (!geolocation.muted)可判断Android版本的GPS是否打开,对IOS版无效。
所以,在if (!geolocation.muted) 之后。需要添加另一个监听geolocation.addEventListener(StatusEvent.STATUS, geoStatusHandler); 事件为:对象将在设备(如摄像头或麦克风)或对象(如 LocalConnection 对象)报告其状态时调度 StatusEvent 对象。
该事件监听必须添加,添加了这个监听后,针对于ios设备,会在你启动该功能时,提示你是否要打开GPS定位功能。
2) 定位监听:
注: geolocation.addEventListener(GeolocationEvent.UPDATE, geoUpdateHandler); 是为设备添加事件监听,用于获取设备的经纬度信息;获取的经纬度值可以通过GeolocationEvent类的latitude和longitude属性方法得到。这里说明,当获取到值之后,需要把监听移除,避免设备不停的去获取经纬度值。
3) 设备权限和配置:
针对于android系统,需要添加定位和网络权限,访问GPS位置数据时需要ACCESS_FINE_LOCATION 许可。 而在访问无线网络位置数据时需要ACCESS_FINE_LOCATION 或ACCESS_COARSE_LOCATION。
针对于ios系统,你需要在应用程序描述符文件中添加两处设置:
具体关于AIR 地理定位API(Geolocation API)的使用方法,可以参见:
http://www.adobe.com/cn/devnet/air/quick_start_as/quickstarts/qs_as_geolocation_api.html
StoreKit:iOS应用内推广其他App 在iOS应用中,要推广其他App有两种途径,一种是直接跳转到AppStore软件的对应App商品页,还有一种是在当前应用内内嵌一个App商品页。相比第一种方式,第二种方式的体验更好,并且不会打断用户对当前应用的使用。
uniapp打包ios应用的证书获取方法和上架流程 uniapp目前支持多端开发,可以开发H5网页,也可以开发小程序应用,还可以开发APP。假如需要开发ios app,则需要一个打包的证书和证书profile文件,还需要将这个打包好的APP上架app store。uniapp官网的例子中,生成证书和上架都需要使用mac电脑,而且操作比较复杂,这里我们这篇文章将教会大家无mac电脑生成开发证书和上架的例子。
相关文章
- android 置灰不可点击,Android Studio 运行按钮灰色的完美解决方法
- android中的加密算法,Android中加密算法[通俗易懂]
- android开机动画多长时间_Android开机动画原理分析
- android获取控件的几种方式
- android.widget.RelativeLayout$LayoutParams cannot be cast to android.widget.FrameLayout$LayoutParams
- android定时器取消,Android定时器崩溃取消
- android 验证码短信验证码,Android短信验证码倒计时验证的2种常用方式
- android短信验证码代码,Android短信验证码自动填写实现代码
- android系统中toast是什么_Android个人资料简单布局
- 备份从android到ios系统文件,如何将音乐从安卓设备转移到iOS设备中「建议收藏」
- android登录注册跳转的代码_Android开发代码
- Android studio 插件之 GsonFormat (自动生成javabean)
- 2-STM32+Air724UG基本控制篇(自建物联网平台)-整体运行测试-Android扫码绑定Air724,并通过MQTT和模组实现远程通信控制(使用模组自带MQTT命令)
- 【Flutter】手机应用类型 ( Android | iOS | Native 应用 | Web 应用 | Hybrid 应用 | ReactNative 应用 | Flutter 应用 )
- 【Android 逆向】Android 权限 ( Android 逆向中使用的 android.permission 权限 | Android 系统中的 Linux 用户权限 )
- Android Camera原理之拍照流程zsl优化方案
- Android 文件读写详解编程语言
- Linux与iOS之间的技术对比(linux和ios)
- 谷歌数据恢复工具可搬迁iOS WhatsApp聊天记录至Android平台
- 把 Linux 安装到 iOS 设备上的步骤(ios安装linux)
- Android系统基于Linux内核,实现移动设备突破极限。(android linux内核)
- 移动端iOS技术实现Oracle数据库连接(ios联接oracle)
- iOS让Oracle无处不在(ios支持oracle么)
- Android开发笔记之:复写按钮方法
- Android执行shell命令详解
- Android应用开发:电话监听和录音代码示例
- Android实现加载广告图片和倒计时的开屏布局
- Android按钮单击事件的四种常用写法总结