使用AIR进行移动APP开发常见功能和问题(上)
1、 获取最近联系人
思路:侦听Geolocation的update事件,获取经度和纬度信息,再把坐标信息上传至服务器,服务器比较坐标信息算出距离,返回最近位置的若干个人。
update时间在2种情况下会触发,一是gps,二是网络位置服务,这都要求手机里面必须开一个。注意gps在室内一般都没有信号。
部分开放平台已经开放相关api,服务器部分可不用自己写,研究下现有的开放api。
2、遍历文件夹里面的所有文件
- var file:File =File.applicationDirectory.resolvePath("guessing");
- this.pop(file);
- private functionpop(file:File): void
- {
- if(file.isDirectory)
- { //指示是否为对目录的引用。如果 File 对象指向一个目录,则该值为 true;否则为 false
- vararr:Array=file.getDirectoryListing();//getDirectoryListing()返回与此 File 对象表示的目录下的文件和目录对应的 File 对象的数组。此方法不浏览子目录的内容。
- for each(var file:File in arr){ //File 对象表示文件或目录的路径(既可以是文件也可以是路径)
- if(!file.isDirectory)
- {
- trace(file.nativePath,file.url)
- }else
- {
- pop(file);
- }
- }
- }
- }
如果想自选目录,用这样浏览,并侦听选择事件:
- file.browseForDirectory("请选择一个目录" );
- file.addEventListener(Event.SELECT,onSingleSelect);
3、Embed绑定任意类型文件
flex sdk Embed文件时会强制检测类型,例如jpg文件直接把扩展名改成swf,embed到代码中就会报 java.lang.NullPointerException错误
绑定文件的方法:
[Embed(source="asset.swf", symbol="swf中某个元件的类名",mimeType="类型")]
public var img01:Class;
如果要绑定特定的文件类型,指定mimeType,如果不配置mimeType,则会强制检测类型,并根据扩展名认定mimeType类型
[Embed(source="guessing/face/1.swf",mimeType="application/octet-stream")]
绑定任意类型文件设置mimeType=application/octet-stream,这样以二进制方式加载绑定文件,new出来后就是byteArray。
4、air加载远程文件
移动平台air 不论是android平台还是ios平台,都支持加载远程文件,但会有安全域问题
错误:
Error #2044: Unhandled IOErrorEvent:.text=Error #2036: Load Never Completed.
需要在服务器网站根目录下下配置crossdomain.xml 设置domain="*",允许所有外部请求。
特殊情况,如果服务器有防外链限制,则会报错,比如请求腾讯cdn文件,as项目就能正常加载,放air项目就不行,报Error #2044: Unhandled IOErrorEvent:.
5、发布apk文件失败
把很多零散文件打包成apk时,很容易出错,测试5千个文件,一直打包失败。解决方法是把零散小文件批量embed成一个素材包再进行apk打包。
发布apk时打包文件一定不要漏了文件,因为调试起来很麻烦,查找问题很不方便。
6、开发多个版本解决方案
如果想一个版本同时支持手机版、web版,甚至ios版,逻辑代码基本一样,只是UI不同,这是如果项目完全独立开发,可能维护成本比较高,建议采用一个版本的方式开发维护。
思路:程序代码用一份,UI分开,分别配置几个不同的工程区调用相同的源代码,不同的ui,生成不同的UI。
7、其他注意事项:
AIR 的 -app.xml 配置文件里,要把权限全部预定义好才行,否则可能没权限操作(比如写文件)或不响应某个功能的情况
8、AIR FOR IOS 生成的APP:
1. 远程更新在 iOS 上是不允许的, 它属于代码注入, 有安全隐患,但是将 swf打散成n个子 swf 模块, 封装到1个 IPA 里现在可以了,把所有要加载的 swf 封装到 IPA 内部, 并且定义到配置文件里。不带程序正常的swf能加载显示,并且里面所带的动画和视频声音播放都正常。
2. 测试了流式加载flv,flv视频的播放控制用AS3也是ok的,其他的视频格式没试过。
3. 测试了外部加载mp3格式的声音及声音播放控制也是ok的。
使用AIR进行移动APP开发常见功能和问题(上)的更多相关文章
- 使用air进行移动app开发常见功能和问题(一)
1. 获取最近联系人 思路:侦听Geolocation的update事件,获取经度和纬度信息,再把坐标信息上传至服务器,服务器比较坐标信息算出距离,返回最近位置的若干个人. update时间在2种情 ...
- 使用air进行移动app开发常见功能和问题(二)
1. Air如何判断android.ios 平台网络连接状态? Android,使用as3原生api: if(NetworkInfo.isSupported)//只有android支持 Networ ...
- 使用AIR进行移动APP开发常见功能和问题(下)
1. Air如何判断android.ios 平台网络连接状态? Android,使用as3原生api: if(NetworkInfo.isSupported)//只有android支持 Networ ...
- APP测试常见功能测试点汇总
本文总结了一些APP功能测试中经常遇见测试点,仅供参考,是好早以前看哪位前辈总结的,一直在使用,所以也稍微的修改了下放到自己的博客中,以备日后温习.1.安装和卸载安装和卸载是任何一款APP中都属于最基 ...
- HTML5来了:5个好用的混合式App开发工具
在残酷的移动互联网竞争环境下, HTML5技术一直受到各方关注,“HTML5颠覆原生 App”的争论也从未停止过,不管怎样HTML5生态的构建方兴未艾.不过对于移动开发者来说更关心的问题是如何低成本. ...
- 基于React Native的58 APP开发实践
React Native在iOS界早就炒的火热了,随着2015年底Android端推出后,一套代码能运行于双平台上,真正拥有了Hybrid框架的所有优势.再加上Native的优秀性能,让越来越多的公司 ...
- pc蛋蛋app开发定制
如今的pc蛋蛋app开发和pc蛋蛋软件开发互联网已经不再是一个新兴行业,对打仗的团队也要求更加正规化.对于产品技术运营市场等角色来说,如果每个人都能有比较全面的视野,那这个产业将是一个全新的趋势,单一 ...
- APP开发外包时常见的错误
时代在发展,科技在进步,很多企业都想要开发出属于自己的一款APP.然而,不是每个企业都有开发团队或是专门雇一个技术人员来做的,有一个好方法就是把开发APP的工作外包出去,找一个比较好的外包公司根据自己 ...
- 如何用HMS Nearby Service给自己的APP开发一个名片交换功能?
在工作和生活中,遇见新的同事或者合作伙伴,交换名片是一个常见的用户需求,纸质名片常忘带.易丢失,是客户的一个痛点.因此,市场上出现了很多交换电子名片的APP和小程序.那么,如何给自己的APP开发一 ...
随机推荐
- iOS 旋屏问题
今天突然想起来,以前的一个问题没有解决,就上网百度了一些方法,看到一篇文章,写的很详细,我就操作试试,结果还真的实现了功能,接下来我将重复他的结合我自己的测试,说一下iOS中的旋屏问题. 1.首先配置 ...
- Claris and XOR(模拟)
Claris and XOR Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)To ...
- STM32开发指南-蜂鸣器实验
另一种I/O作为输出的应用,利用一个I/O来控制板载的有源蜂鸣器,实现蜂鸣器控制. PS:有源蜂鸣器自带了震荡电路,一通电就会发声:无源蜂鸣器则没有自带震荡电路,必须外部提供2~5Khz左右的方波驱动 ...
- mysql建表---级联删除
CREATE TABLE `roottb` ( `id` INT(11) UNSIGNED AUTO_INCREMENT NOT NULL, `data` VARCHAR(100) NOT NUL ...
- C# 开发系列(一)
1.开发环境搭建: win7 32位系统,然后安装 visual studio 2012. 2.将 .net_framework 加入到windows 的环境变量当中. C:\Windows\Micr ...
- (二)Jquery Mobile介绍以及Jquery Mobile页面与对话框
Jquery Mobile介绍以及Jquery Mobile页面与对话框 一. Adobe Dreamweaver CS6 环境 最新版本的cs6会支持JM的使用,有自动提示功能,很强大.安装说明地 ...
- iOS开发之圆角指定
如果需要将UIView的4个角全部都为圆角,做法相当简单,只需设置其Layer的cornerRadius属性即可(项目需要使用QuartzCore框架).而若要指定某几个角(小于4)为圆角而别的不变时 ...
- Android高斯模糊技术,实现毛玻璃效果(转)
本博客转自郭霖公众号:http://mp.weixin.qq.com/s?__biz=MzA5MzI3NjE2MA==&mid=2650235930&idx=1&sn=e328 ...
- 一种比较简单的在USB U盘中访问nandflash的方法
u8 nandflash_write_buffer[NAND_SERECT_FULL_SIZE]; static int currentBlock = -1; static int currentPa ...
- S3C2440看门狗解析
个PCLK周期的复位信号 也就是说,在某些环境下,看门狗可以当做定时器使用,当他中断的时候并不发生复位,只发生中断,我看看图 看门狗的中断和复位信号是可以依靠wtcon来切断的(看门狗的时钟是无法切断 ...