模块开发要点与返回刷新页面注意事项

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
});

欢迎大家提出问题和指正,感谢

apicloud 自定义模块的开发与上架注意事项的更多相关文章

  1. apicloud 自定义模块引用aar

    apicloud 引入aar包,如果使用apicloud自定义模块的话,如果是一般的jar包,我们需要把jar down到本地然后添加到module的libs中就可以了(不要想着用远程地址了,既然用a ...

  2. Apicloud自定义模块

    各种坑,折腾了两天才有点头绪.我用的是Android Studio编辑器,官网是Eclipse的视频.文档也比较蛋疼. 自定义模块的目录结构要按照下面来处理 其中res_模块名,存放res和Andro ...

  3. 关于apicloud ios自定义模块引用第三方framework not found for architecture armv7

    1 .自定义模块 新建模块必须是静态库 2.使用的第三方framework 必须要把 .h文件开放出来 3.编译要用 真机模式 (上传模块以后,自定义load要编译,用生成的二维码调试) 4. 添加监 ...

  4. python开发学习-day05(正则深入、冒泡排序算法、自定义模块、常用标准模块)

    s12-20160130-day05 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: ...

  5. Python开发【第一篇】Python基础之自定义模块和内置模块

    为什么要有模块,将代码归类.模块,用一砣代码实现了某个功能的代码集合. Python中叫模块,其他语言叫类库. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代 ...

  6. Nginx模块开发1_明白自定义模块的编译流程

    自定义模块的编译流程 --add-module参数 configure使用--add-module参数指定添加模块目录. config脚本 由--add-module指定的目录保存为$ngx-addo ...

  7. 使用python开发ansible自定义模块的简单案例

    安装的版本ansible版本<=2.7,<=2.8是不行的哦 安装模块 pip install ansible==2.7 先导出环境变量 我们自定义模块的目录. 我存放的目录 export ...

  8. 自定义搭建PHP开发环境

    学习了一段时间php了,因为之前是刚接触php,所以用的是集成安装包(wamp).现在想进一步了解apache.mysql.php之间的关系以及提升自己所以进行自定义搭建PHP开发环境.废话不多说,请 ...

  9. python基础知识8——模块1——自定义模块和第三方开源模块

    模块的认识 模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需 ...

随机推荐

  1. centos7----pstree

    centos 默认没有pstree 安装 yum -y install psmisc

  2. 交换机与VLAN

    1. 交换机 1.1 定义 交换机是一种基于MAC地址识别,能完成封装转发数据帧功能的网络设备. HUB集线器是一种物理层共享设备,HUB本身不能识别MAC 地址和IP地址,当同一局域网内的A主机给B ...

  3. iOS-自定义NavigationItem返回按钮【pop返回按钮】

    在用navigationVC时,返回按钮有时候不想用系统的,这里用继承的方式把按钮替换了,同时也可以实现系统的右滑返回,很简单: 1.创建基类 BasePopViewController 创建一个用于 ...

  4. 安卓APP简单后端的搭建

    写在前面: 此教程没有用到后端框架.只是单纯用servlet做一个例子,如果是学框架可以不用往下看了 本文适合哪些人:懂java的,会写android单机程序,懂得用HTTPClient等发送请求解析 ...

  5. Unity项目接入应用宝SDK实现截图功能

    Unity项目接入应用宝SDK实现截图功能 问题由来 点击应用宝悬浮窗 如图所示 左下角有一个截图按钮 需要解决那些问题 截图信息需要由游戏引擎提供 SDK获取截图信息为同步 但是Unity引擎没有提 ...

  6. 调用的执行器“executor://mstestadapter/v2”时发生异常: 无法找到程序集“log4net, Version=1.2.15.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a”

    加上下面的一句就好了 [TestCleanup]      public void cleanup()      {          CallContext.FreeNamedDataSlot(&q ...

  7. 利用净现值(NPV)分析对比方案的可行性

    最近在学经济管理方面课程,发现一个挺有意思的例题,mark一下. 题目描述 某投资项目有A.B两个方案,有关数据如下表,基准折现率为10%,请问那个方案较优? 项目 A方案 B方案 投资 15 3 年 ...

  8. 解决当FORM的ENCTYPE="multipart/form-data" 时request.getParameter()获取不到值的方法

    部分转载于: http://blog.csdn.net/georgejin/article/details/1706647 http://www.cnblogs.com/loveyunk/p/6089 ...

  9. Install vsftpd on centos

    安装vsftpd程序. sudo yum -y install vsftpd 启动ftp服务. sudo service vsftp start 添加ftp用户,并设置密码. sudo useradd ...

  10. MVC源码分析 - ModelBinder绑定 / 自定义数据绑定

    这几天老感觉不对, 总觉得少点什么, 今天才发现, 前面 3 里面, 在获取Action参数信息的时候,  少解析了. 里面还有一个比较重要的东西. 今天看也是一样的. 在 InvokeAction( ...