模块开发要点与返回刷新页面注意事项
1、介绍
apicloud 除了使用官方提供的模块外,我们可以自定义一些模块供自己使用和上传到官方出售。针对没有提供或者价格过贵的模块,如果有时间自己可以进行研究。
2、开发
首先要先下载开发工具(此处我还是只讲Android),建议下载Android Studio。
关于开发规范大家参考官网即可(https://docs.apicloud.com/Module-Dev/module-dev-guide-for-android-studio),另附上官网提供的相关文档地址,如下:
详细的SDK帮助文档:docs.apicloud.com/superwebview/Android/
Android在线API文档:https://developer.android.google.cn/reference/packages.html
Javascript规范及入门:http://www.w3school.com.cn
JSON数据在线Viewer:http://www.bejson.com/go.html?u=http://www.bejson.com/jsonview2/
根据官网的开发规范和视频教程开发基本无伤,在此我主要说明一下中间会有的一些小坑,如下:
- 开发过程中如果使用Android Studio 自带的模拟器x86 会报错,除非改成 arm。 建议大家使用第三方模拟器,比如mumu,海马之类的,我使用的mumu模拟器(广告比较少),关于Android Studio 如何连接第三方模拟器,和我一样刚接触 studio 的同学可以参考这篇博客,感谢博主谢桥的
(Android Studio连接第三方模拟器
还有一个地方需要注意的是, -113这个错误,网上有的说需要在gradle里加上以下配置即可,实际测试有点问题,可能是其他某个地方配置有问题,建议大家开始还是按照官文开发。
splits { abi { enable true reset() include 'x86', 'armeabi-v7a','x86_64' universalApk true } }
- 如果在app想要打开某个应用,Android的话需要package ,ios需要Url Scheme,在此送上另一位博主提供资料(常用移动应用 Packagename 和 URL Scheme),感谢起梦。
- 如果自己开发的模块想要在官网售卖,上传模块信息的时候,大家务必在版本号上注明为 1.0.0,否则会被打回来。
返回刷新页面注意事项,今天遇到的小问题,问题与解决方式如下:
在app开发过程中,难免会遇到用户更改某些信息,返回后需要更新缓存与重新渲染页面的情况。
例如:如果用户注册成功,我会一般会返回设置页面,并更新头像、昵称等用户信息,这是除非我们重新open一下,否则不会再次重新选择,但我们一般情况下使用historyback比较多,或者直接关闭当前页面,这样的话,原有的页面不会重新渲染。
解决方法:返回时,利用apicloud提供的execScript()接口,执行返回页面的函数,实现返回页面的刷新,如下(官网上的例子),如下(不建议大家使用过多的事件监听,使用api的自定义监听过多,会导致线程过度增加,占用内存,系统变慢,另外监听过多,难免会遇到重复监听,容易出现问题):
//在当前window中执行jsfun脚本 var jsfun = 'funcGoto();'; api.execScript({ script: jsfun }); //在当前window中找到名为frmName的frame,并在该frame中执行jsfun脚本 var jsfun = 'funcGoto();'; api.execScript({ frameName: 'frmName', script: jsfun }); //在名为winName的window中执行jsfun脚本 var jsfun = 'funcGoto();'; api.execScript({ name: 'winName', script: jsfun }); //在名为winName的window中找到名为frmName的frame,并在该frame中执行jsfun脚本 var jsfun = 'funcGoto();'; api.execScript({ name: 'winName', frameName: 'frmName', script: jsfun });
欢迎大家提出问题和指正,感谢