积木式移动互联网App框架——modular,它是一个轻量级的Hybird型的框架,本文讲解它的使用。

开发环境

  • android studio 3.0+,并下载安装android SDK、gradle等等
  • JDK 1.8 +
  • xcode 10.0 +
  • Sublime Text 3.0+

兼容版本

  • android 支持版本6.0 +
  • iOS 支持版本 10.0 +

模板工程

iOS模板工程

打开上述下载的模板工程的modular.xcodeproj,模板工程目录结构如图:

config是配置文件:

  • 命名以Default开头的png 是一系列启动图片
  • modular-plugin-iOS.xml 是JS的Native插件接口白名单
  • global.properties 是App的配置,目前只需要关注配置项:
// 生产地址
online.addr=http://xxx.xxx.xxx.xxx

它是应用程序加载的前端URL地址,其他的配置项后面博客会讲解。

  • AppDelegate iOS标准的应用程序代理类,在入口接口里我们已经编写好一个直接调用modular框架里WMWKWebViewController。后续可自行根据需求,增加应用级别的逻辑,例如,Push等等
  • WMWKWebViewExtendPlugin 我们预留一个用于自行扩展modular框架中未实现的能力的扩展插件类

框架包

modular.framework是我们框架的静态库。

android模板工程

打开android studio,导入上述下载模板工程里modular-android,工程目录结构如图:

打包脚本

buildScript-adr 打包脚本,后续讲解打包过程。

App 配置文件

assets
  • global.properties App配置,目前只需要关注配置项:
// 生产地址
online.addr=http://xxx.xxx.xxx.xxx

它是应用程序加载的前端URL地址,其他的配置项后面博客会讲解。

  • modular-plugin-adr.xml JS的Native插件接口白名单
res

在以mipmap开头的文件夹里,放置对应分辨率的启动图片startpage.png;

  • LaunchActivity结合res/style.xml实现一个闪屏页面;
  • WMWebViewExtendPlugin 我们预留一个用于自行扩展modular框架中未实现的能力的扩展插件类。

框架包

modular.jar是我们框架的jar包。

编译打包

iOS ipa打包

在iOS 模板工程下的buildScript-iOS下,如图:

build.sh编译打包脚本,请自行修改下面3个参数:

# 应用targetName,一般应用的根目录的名称
targetName="xxx"#当前证书的ID标识
code_sign_identity="iPhone Distribution: xxx"#证书签名文件名
code_sign_profile="xxx.mobileprovision"
  1. 在模板工程中配置好苹果证书;
  2. 打开Mac 系统中Terminal App,进入到builScript-iOS目录下,输入打包命令:./build.sh 。
  3. 命令执行完毕之后,会在buildScript-iOS目录下新增一个ipa目录存放ipa文件。

上述脚本是基于苹果299的企业版证书,对于苹果99证书,可以参考一下另外一个博文。

android apk打包

在android 模板工程下的buildScript-adr下,如图:

  • build.sh编译打包脚本
  • buildConfig.gradle gradle脚本,主要就是一个copy的task

    在android studio 的Terminal 下输入打包命令:./buildScript-adr/build.sh,命令执行完毕之后会在buildScript-adr目录下新增一个apk目录存放apk文件。
    注意:在app的build.gradle中,我们增加如下配置:
// 请根据xxx.jks证书情况配置
signingConfigs {config {keyAlias 'xxx'storeFile file('xxx.jks')keyPassword '******'storePassword '******'v1SigningEnabled truev2SigningEnabled true}
}
// 在buildTypes中增加签名配置
buildTypes {release {// 采用上面配置的signingConfig.config签名signingConfig signingConfigs.config …}
}

HTML

我们考虑可移植性和兼容性,采用标准Javascript编写Javascript桥。因此,无论你当前的Html工程基于什么框架,例如,vue, nodejs等等,都可以使用,仅在需要调用Native能力的Html中引入modular框架提供modular-core.js,即在html的head或者body里引入

<script type="text/javascript" src="modular-core.js"></script>

下载模板工程

基于开箱即用的设计原则,我们提供一个框架模板工程,可自行从gitHub上下载模板工程,可自行修改工程名称以及target名称。
gitHub:https://github.com/wuyoujian0313/modular-proj

小结

此时模板工程就已经具备了Hybrid能力,在模板工程的配置文件modular-plugin-iOS.xml或modular-plugin-adr.xml中配置封装在modular框架中的Native端能力接口,后续博客会详细讲解Native端能力接口的使用。

积木式移动互联网App Hybrid框架-modular的使用(1)相关推荐

  1. 积木式移动互联网App Hybrid框架-modular

    你好,欢迎阅读本系列博文! 自09年初做Windows Mobile研发起,就踏上移动互联网平台App不归路了(题外话:何为Windows Mobile,它由微软打造,跟当年红极一时诺基亚智能手机系统 ...

  2. 积木式移动互联网App Hybrid框架-modular源码解析(1)

    现在解析一下modular的核心源码,代码在上一个博文中给出了git下载地址.如今都在喊大前前端研发,但HTML要依赖Native端的能力还是需要对应的原生研发,本人开源了框架代码,也希望有志同道合的 ...

  3. 积木式编程——自制app点灯

    技术:51单片机.串口.蓝牙.积木式编程 概述 这里简单入门了积木式编程,做了个简易APP用来开灯关灯,当然你可以继续添加内容,可以做智能家居.遥控汽车和环境监控等等. 详细 代码下载:http:// ...

  4. 58同城iOS客户端Hybrid框架探索

    作者:杜艳新,刘文军.58同城iOS高级研发工程师,专注于App Hybrid框架的架构研发,主导了58同城App的Hybird混合研发的系统架构以及研发. 责编:唐小引,欢迎技术投稿.约稿.给文章纠 ...

  5. 58 同城 iOS 客户端 Hybrid 框架探索

    [CSDN 编者按]58 同城 iOS 客户端的 Hybrid 框架在最初设计和演进的过程中,遇到了许多问题.为此,整个 Hybrid 框架产生了很大的变化.本文作者将遇到的典型问题进行了总结,并重点 ...

  6. 制作APP?零编程积木式搭建,在应用公园就是真么简单

    由于近年来移动互联网用户的爆发式增长,手机APP的开发和制作成了许多企业迫在眉睫的需求.使用自助制作工具建设APP,不失为一种方便快捷的途径.如果不需要程序员和设计师就可以简单快速地完成手机APP制作 ...

  7. 产品经理必了解的3个app技术框架

    在现在越来越多的app,你可以看到有一些app中是混着网页加载的(我们俗称的为H5)但要注意的web 前端开发是包含着h5的.web前端开发还包括了许多内容,比如说后台html,css,div等都是属 ...

  8. python积木式编程_TurnipBit—MicroPython开发板:从积木式编程语言开始学作小小创客...

    编程.建模.制做动画和游戏--这些当初咱们默认只有成年人玩得转的事情,如今早已经被无数小孩子给颠覆甚至玩出新境界了.热爱科技和动手的"创客"(Maker)如今在全世界都煊赫一时.今 ...

  9. springboot+基于vue的响应式代购商城APP的设计与实现 毕业设计-附源码191654

    Springboot响应式代购商城APP 摘 要 近年来,随着移动互联网的快速发展,电子商务越来越受到网民们的欢迎,电子商务对国家经济的发展也起着越来越重要的作用.简单的流程.便捷可靠的支付方式.快捷 ...

最新文章

  1. 笔记本右侧手滑板Synaptics
  2. freeswitch模块之event_socket
  3. java rgb hsl_RGB、HSB、HSL 互相转换算法
  4. setuptools与distutils的区别
  5. Day14作业 一、完成下面的要求? 先创建一个工人类,属性:姓名,年龄,工资
  6. Linux下编译build的命令,【linux基础】20、内核的编译
  7. C# 5.0新加特性
  8. socket通信和异常处理札记
  9. 前端学习(2479):接口文档使用
  10. 【整理】Server.Variables属性大全
  11. C语言输出规定长度的整数,不够位数前面补零
  12. POJ--3268 Silver Cow Party(最短路)
  13. git快速入门之一:创建本地仓库并同步到远程
  14. 电脑常用良心软件推荐!!!
  15. microsoftedge无限弹出_Win10升级之后edge浏览器总是弹出欢迎页面解决方法
  16. C#XtraReport学习之二 winform打印按钮
  17. Oracle实现US7ASCII到ZHS16GBK数据迁移正常显示中文
  18. easyui treegrid php,JQuery EasyUI TreeGrid控件的使用
  19. 华硕vm510l装固态硬盘_华硕VM510L拆机换固态硬盘
  20. ThinkPHP中vendor()方法导入第三方类库的用法!ThinkPHP 3.2 vendor()方法的深入研究!

热门文章

  1. 【报告笔记】大数据与人工智能的伦理挑战
  2. thinkphp6+layui BBS社区论坛系统源码分享,支持适配移动端附截图
  3. 裸金属服务器性能描述,裸金属服务器性能描述
  4. vb酒店管理信息系统
  5. docker-compose 搭建habor
  6. 音视频基础学习之【01.基于ffmpeg的简单播放器demo实现】
  7. Mysql 错误 1273 Unknown collation
  8. python存储-Python数据存储之 h5py详解
  9. 如何将ai转换为html,如何用AI输出html网页?AI画的图片-存储为web及所有格式-放到网页有锯齿?...
  10. 自动清理源计算机设备驱动,win10系统删除过期驱动程序设备的设置技巧