目前主要的跨平台框架有Flutter,React native,APICloud等,这些框架经过多年发展,已经比较稳定成熟。开发移动APP有非常大的需求,如果不使用跨平台技术,则需要android 和 iOS两种技术人员。使用跨平台技术可以帮助企业节约成本,更高效的开发出APP。
APICloud 成立于2014年,经过多年发展,其框架已经比较稳定。一个很大的优势是平台累积了上千个各种功能的模块,大大提高了开发APP的效率。另一个优势是社区支持较好,可以很好帮助新手快速入门,及时解决一些开发途中遇到的常见问题。2019年推出的APICloud3.0, 使用 avm.js 跨端框架,语法类似vue,纯翻译式原理,使性能有了进一步提高。
窗口操作类
api.openWin 打开window,若window已存在,则会把该window显示到最前面,同时若url有变化或者reload参数为true时,页面会重新加载。
api.openFrame 打开 frame, 若 frame 已存在,则会把该窗口显示到最前面并显示,如果 url 和之前的 url 有变化,或者 reload 为 true 时,页面会刷新。
api.openTabLayout 打开tabLayout布局,本方法继承了openWin方法的所有参数,同时在此基础上增加了navigationBar、tabBar等参数,来设置和使用原生的顶部导航栏和底部标签栏,可以通过closeWin方法来关闭页面。
api.openFrameGroup 打开frame组。
讲解:
什么是window 和 frame,可以简单理解为一屏幕内容的载体,一个页面。window 不能设置大小,只能是全屏的,frame是可以设置位置和大小的。openTabLayout 打开一个带有顶部、底部导航的window,导航内容和个数可以通过参数配置。
api.closeWin 关闭 window
api.closeFrame 关闭 frame
网络通信
api.ajax 跨域异步请求,支持标准HTTP协议,支持HTTPS单向/双向认证请求,支持文件上传,支持缓存。 HTTPS需要向国际受信任的CA证书颁发机构购买CA证书,否则将可能请求失败,可以在config中配置不校验CA证书是否受信任。 云编译开启全局加密的情况下,请务必使用api.ajax,避免使用JQ等框架的ajax,否则将引起请求失败。
api.cancelAjax 取消异步请求
api.download 下载文件
api.cancelDownload 取消文件下载
api.imageCache 图片缓存
api.applyCertificates 设置全局HTTPS双向认证,客户端P12证书,证书将作用于ajax网络请求,以及openWin、openFrame等加载web页面。此配置与ajax的certificate互斥,即如果ajax配置了certificate,将优先使用ajax出入的certificate。
应用管理
api.installApp 安装应用,如果是苹果的AppStore应用地址,将会跳转到AppStore应用详情页面
api.uninstallApp 卸载应用,只支持Android
api.openApp 打开手机上其它应用,可以传递参数
api.appInstalled 判断设备上面是否已安装指定应用
api.rebootApp 重启应用,云修复完成后可以调用此方法来重启应用使云修复生效。
数据存储
api.readFile 读取文本文件内容,只支持utf-8编码文本类型文件
api.writeFile 写入内容到文本文件
api.setPrefs 设置偏好数据,数据会存储到本地文件系统。
api.getPrefs 获取偏好设置值
api.removePrefs 删除偏好设置值
api.setGlobalData 设置全局数据,数据只存储在内存中,不会存储到本地文件系统。
api.getGlobalData 获取全局数据
api.clearCache 清除缓存,包括cache://目录下的文件、拍照临时文件、网页缓存文件等,清除时可能需要消耗一定时间。
api.getCacheSize 获取缓存占用空间大小,缓存包括cache://目录下的文件、拍照临时文件以及网页缓存文件等,计算可能需要花费一些时间
api.getTotalSpace 获取总存储空间大小
api.getFreeDiskSpace 获取剩余存储空间大小
api.loadSecureValue 从加密的key.xml文件中读取指定数据,key.xml文件放置于网页包里面的res目录
消息事件
api.addEventListener 监听事件,支持系统事件和自定义事件
api.removeEventListener 移除事件监听
api.sendEvent 将任意一个自定义事件广播出去,该事件可在任意页面通过 api.addEventListener 监听收到