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

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里加上以下配置即可,实际测试有点问题,可能是其他某个地方配置有问题,建议大家开始还是按照官文开发。
        
  1. splits {
  2. abi {
  3. enable true
  4. reset()
  5. include 'x86', 'armeabi-v7a','x86_64'
  6. universalApk true
  7. }
  8. }
  •   如果在app想要打开某个应用,Android的话需要package ,ios需要Url Scheme,在此送上另一位博主提供资料(常用移动应用 Packagename 和 URL Scheme),感谢起梦。
  •   如果自己开发的模块想要在官网售卖,上传模块信息的时候,大家务必在版本号上注明为  1.0.0,否则会被打回来。

  

  返回刷新页面注意事项,今天遇到的小问题,问题与解决方式如下:

  
  在app开发过程中,难免会遇到用户更改某些信息,返回后需要更新缓存与重新渲染页面的情况。

  例如:如果用户注册成功,我会一般会返回设置页面,并更新头像、昵称等用户信息,这是除非我们重新open一下,否则不会再次重新选择,但我们一般情况下使用historyback比较多,或者直接关闭当前页面,这样的话,原有的页面不会重新渲染。

  解决方法:返回时,利用apicloud提供的execScript()接口,执行返回页面的函数,实现返回页面的刷新,如下(官网上的例子),如下(不建议大家使用过多的事件监听,使用api的自定义监听过多,会导致线程过度增加,占用内存,系统变慢,另外监听过多,难免会遇到重复监听,容易出现问题):

  

  1. //在当前window中执行jsfun脚本
  2. var jsfun = 'funcGoto();';
  3. api.execScript({
  4. script: jsfun
  5. });
  6.  
  7. //在当前window中找到名为frmName的frame,并在该frame中执行jsfun脚本
  8. var jsfun = 'funcGoto();';
  9. api.execScript({
  10. frameName: 'frmName',
  11. script: jsfun
  12. });
  13.  
  14. //在名为winName的window中执行jsfun脚本
  15. var jsfun = 'funcGoto();';
  16. api.execScript({
  17. name: 'winName',
  18. script: jsfun
  19. });
  20.  
  21. //在名为winName的window中找到名为frmName的frame,并在该frame中执行jsfun脚本
  22. var jsfun = 'funcGoto();';
  23. api.execScript({
  24. name: 'winName',
  25. frameName: 'frmName',
  26. script: jsfun
  27. });

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

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. Redis---Hash(字典)

    1. 概述 Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象. Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿). ...

  2. 版本控制工具git

    公司要求用git,感觉不如svn好使,还是命令行的,暂时记录一下. 服务器是在linux上可以直接安装.我是虚拟机centos6.9版本.yum install -y git 查看版本号是git -- ...

  3. linux下mysql的远程访问

    安装了虚拟机centos,安装mysql后,在win7下无法用工具访问mysql.提示连接失败. 1.授权远程访问. GRANT ALL PRIVILEGES ON databasename.* TO ...

  4. 矩阵乘法在numpy/matlab/数学上的不同

    数学意义上的矩阵乘法 注意事项: 1.当矩阵A的列数(column)等于矩阵B的行数(row)时,A与B可以相乘. 2.矩阵C的行数等于矩阵A的行数,C的列数等于B的列数. 3.乘积C的第m行第n列的 ...

  5. 09-02 java 多态

    多态的前提.多态的特点 /* 多态:同一个对象(事物),在不同时刻体现出来的不同状态. 举例: 猫是猫,猫是动物. 水(液体,固体,气态). 多态的前提: A:要有继承关系. B:要有方法重写. 其实 ...

  6. PHP:使用Zend对源码加密、Zend Guard安装以及Zend Guard Run-time support missing的解决方法

    Zend Guard是目前市面上最成熟的PHP源码加密产品了.刚好需要对自己的产品进行加密,折腾了一晚上,终于搞定,将碰到的问题及解决方法记录下来,方便日后需要,也可以帮助其他人.我使用的是Wamps ...

  7. 自然语言处理(英文演讲)_2-gram

    这里利用2-gram模型来提取一篇英文演讲的初略的主题句子,这里是英文演讲的的链接:http://pythonscraping.com/files/inaugurationSpeech.txt n-g ...

  8. Spring Boot 数据访问集成 MyBatis 与事物配置

    对于软件系统而言,持久化数据到数据库是至关重要的一部分.在 Java 领域,有很多的实现了数据持久化层的工具和框架(ORM).ORM 框架的本质是简化编程中操作数据库的繁琐性,比如可以根据对象生成 S ...

  9. Android面试题(2)

    1.  int 和 Integer 有什么区别 Java 提供两种不同的类型:引用类型和原始类型(或内置类型).Int是java的原始数据类型,Integer是java为int提供的封装类.Java为 ...

  10. 通过公钥远程登录sshd认证

    一.root账号使用ssh-keygen 生成密匙 [root@vmware ~]# ssh-keygen Generating public/private rsa key pair. Enter ...