• 设计器UI控件
  • ECHARTS BI组件
  • 基础组件
  • 常见界面布局排布范例
  • 侧边栏目布局范例
  • 多内容组
  • 九宫格界面
  • 爱博体育下载界面主体框架布局
  • 滚动界面
  • 固定界面
  • 设计器框架控件
  • 爱博体育下载应用数据对接与交互(MVVM)
  • 传统开发模式
  • MVVM
  • MVVM技术框架
  • 表单与MVVM
  • 界面设计
  • 代码分析
  • 列表与MVVM
  • 界面设计
  • 代码分析
  • MVVM控制器
  • MVVM过滤器
  • 爱博体育下载应用与WEB
  • 组件化开发
  • 应用引擎
  • 爱博体育下载-LOVEBET爱博体育官网
  • uexWindow
  • uexWidget
  • uexWidgetOne
  • 腾讯X5内核引擎
  • 更新日志
  • 插件API
  • ·使用手册
  • ·ErrorCode
  • ·Constant
  • 系统功能
  • uexApplePay
  • uexBackground
  • uexBluetoothLE
  • uexCall
  • uexCamera
  • uexClipboard
  • uexContact
  • uexControl
  • uexDataBaseMgr
  • uexDevice
  • uexDocumentReader
  • uexEmail
  • uexFileMgr
  • uexFingerPrint
  • uexJsonXmlTrans
  • uexKeyChain
  • uexLocalNotification
  • uexLocation
  • uexLog
  • uexMMS
  • uexSensor
  • uexSMS
  • uexTouchID
  • uexZip
  • uex3DTouch
  • uexNFC
  • uexInAppPurchase
  • 功能扩展
  • uexAudio
  • uexCreditCardRec
  • uexGestureUnlock
  • uexImage
  • uexImageBrowser
  • uexPDFReader
  • uexScrawl
  • uexVideo
  • uexWebBrowser
  • uexImageFilter
  • 界面布局
  • uexActionSheet
  • uexAreaPickerView
  • uexBrokenLine
  • uexButton
  • uexCalendarView
  • uexChart
  • uexChatKeyboard
  • uexCoverFlow2
  • uexEditDialog
  • uexHexagonal
  • uexIndexBar
  • uexInputTextFieldView
  • uexListView
  • uexLoadingView
  • uexNBListView
  • uexPie
  • uexPieChart
  • uexPopoverMenu
  • uexScanner
  • uexScrollPicture
  • uexSearchBarView
  • uexSecurityKeyboard
  • uexSegmentControl
  • uexSlidePager
  • uexTabBarWithPopMenu
  • uexTimeMachine
  • uexWheel
  • uexWheelPickView
  • uexTabIndicatorView
  • uexWebView
  • 网络通讯
  • uexDataAnalysis
  • uexDownloaderMgr
  • uexMQTT
  • uexWebSocket
  • uexSocketMgr
  • uexUploaderMgr
  • uexXmlHttpMgr
  • 第三方SDK
  • uexALiBaiChuan
  • uexAliPay
  • uexBaiduMap
  • uexBaiduNavi
  • uexCamera360
  • uexEasemob
  • uexESurfingRtc
  • uexGaodeMap
  • uexGaodeNavi
  • uexGetui
  • uexJPush
  • uexMobSMS
  • uexNIM
  • uexQcloudAV
  • uexTencentLVB
  • uexQQ
  • uexQupai
  • uexRongCloud
  • uexSina
  • uexTent
  • uexUmeng
  • uexUnionPay
  • uexUnisound
  • uexWeiXin
  • uexXunfei
  • uexESurfingRtcLive
  • JSSDK开发
  • 概要
  • 基础类库Base
  • 本地存储LocStorage
  • 离线缓存icache
  • 窗口模块Window
  • 浮动窗口模块Frame
  • 数据库模块Database
  • 事件模块EventEmitter
  • 网络请求Request
  • 文件模块File
  • 设备模块Device
  • Button按钮
  • CheckBox按钮
  • Dialog消息对话框
  • Header导航栏
  • Input/Textarea文本输入
  • Listview列表组件
  • optionList带操作选项的列表组件
  • Radio按钮
  • Select下拉选择
  • Slider图片轮播组件
  • Switch开关组件
  • Tab选项卡组件
  • Treeview树状列表组件
  • widgetOne模块
  • widget模块
  • 更新日志
  • UI基础框架
  • UI框架设计来源—弹性盒子模型
  • base
  • box
  • color
  • 开发工具IDE
  • IDE概述
  • 安装下载
  • 启动
  • 新建项目
  • 同步项目
  • UI设计器的使用
  • 实时预览
  • 插入控件
  • 本地打包
  • 本地模拟调试
  • 真机同步调试
  • 自定义插件管理
  • 插件同步
  • 代码加密
  • 多入口开发
  • 动态库升级
  • GIT托管
  • 更新日志
  • 开发指导
  • 平台服务专题
  • 应用开发
  • 应用管理
  • 插件引擎
  • 应用转移
  • App升级
  • 开源&原生能力开发专题
  • 自定义引擎机制说明
  • Widget插件扩展机制
  • AndroidNative插件扩展机制
  • iOSNative插件开发指南
  • 自定义插件发布
  • 原生布局实现讲解
  • 自定义布局指引文档
  • 今日头条案例文档
  • 苹果开发适配专题
  • ATS说明文档
  • iOS10适配指南
  • 推送技术专题
  • config·xml配置说明
  • iOS证书申请流程
  • iOS应用正式发布AppStore流程
  • •获取签名信息工具使用
  • •使用Chrome调试AppCan应用
  • •手机抓包工具流程
  • 开放服务
  • 第三方API
  • 云加密服务
  • 云测试服务
  • 第三方云实时通讯天翼RTC
  • 第三方广告接入服务
  • 第三方语音服务
  • Wilddog(JavaScriptSDK)接入
  • 官方推送API•服务端集成
  • 按照softToken列表推送
  • 按照userId列表推送
  • 按照appId广播推送
  • 常见问题分类
  • 云打包常见问题
  • 应用开发常见问题
  • 插件开发常见问题
  • IDE常见问题
  • MVVM常见问题
  • 如何查看分析失败日志
  • 打包失败原因剖析
  • 企业版常见问题
  • App版本更新问题排查指南(对接EMM/MMS平台)
  • 如何查看app上架被拒
  • 正益工作
  • 正益工作概述
  • App端使用手册
  • PC端OA使用手册
  • PC端CRM使用手册
  • 管理后台使用手册
  • 正益工作开源文档
  • 子应用接入文档
  • OA模块代码说明
  • 爱博体育下载CRM模块代码说明
  • 工作管理模块代码说明
  • 案例详解
  • 支付插件实例
  • 页面UI
  • 支付功能
  • 海外购案例
  • 引导页
  • 首页
  • 查询页
  • 发布页
  • 淘现场详情页
  • 商品详情页
  • 购物车功能
  • 我的详情页面
  • 其他篇
  • 文档中心更新日志
  • 公测列表汇总
  • 公测-configxml配置插件以及iOS支持swift
  • iOS9开发适配指南打包环境Xcode7升级公测
  • iOS10公测技术说明
  • 3.3公测内容
  • 4.0接口变化说明
  • 爱博体育下载-LOVEBET爱博体育官网

  • 框架介绍
  • 架构及特性
  • 架构
  • 特性
  • widget机制
  • 插件机制
  • 自定义引擎
  • 开源地址
  • 开源协议

  • 框架介绍

      AppCan应用引擎是一个Hybrid App开发框架,具有跨平台、性能高、用户体验好,原生能力扩展性强等特点。能够实现Web App、Native App以及两者混合的Hybrid App的开发。底层框架通过对浏览器内核(WebView、Crosswalk, 腾讯X5等)的封装,实现了多页面渲染技术。同时,实现了标准原生能力扩展机制,便于开发者无限扩展。开发者可以通过标准的Web技术(HTML/CSS/JavaScript)开发爱博体育下载应用,而原生接口以JS对象的方式呈现。

    1.架构及特性

    1.1架构

    Markdown

      AppCan Hybrid技术架构可以分为5个层级。最底层是爱博体育下载操作平台,目前支持iOS和Android。之上是我们封装的各种通用组件库。比例说:统计分析、消息推送、网页解密、网络管理等等。第三层是我们的管理层,主要包括应用管理、插件的统一管理注册、以及相关的插件组件模块。第二层是window manager, 它负责网页面界面渲染和实现原生插件的调用。最上层是开发者使用HTML5来实现应用开发。 采用这样的架构,有很多技术优势:

    (1) 采用多窗口架构设计,与原生开发体系相吻合,实现与原生相媲美的效果。

    (2) 插件模块化架构设计,原生能力扩展性强。

    (3) 应用热修复能力,允许应用不需要重新编译的情况下,对网页功能模块和插件功能模块进行动态替换。这种方式,可以减少后期升级维护应用的复杂度。

    (4) 通过在引擎之上,我们结合用户在多终端的体验效果,完成一次开发,任何分辨率下的手机上,都可以保证最好的体验效果。

    (5) 同时,平台提供了丰富的基础插件,开发者可以简单快速使用这些组件,集成到自己的应用中。实现应用的快速迭代。

    1.2特性

    1、引擎内核

  • 自主研发对浏览器内核进行封装,支持系统webview、crosswalk引擎和腾讯X5
  • 2、 页面加载方式

  • 基于多窗口实现机制,采用多页面加载方式,即每个页面都由单独的webview来渲染。Markdown
  • 3、应用管理

  • 1)WidgetOne应用管理器是整个widget的运行环境,功能主要包括widget管理、widget内部窗口管理、widget的生命周期管理、消息事件管理、widget间通信机制和widget的运行沙箱管理等。

  • 2)一个HTML5应用称之widget,有唯一的应用ID、完整的生命周期、沙箱机制,通信机制。在引擎中,多个widget应用可以共存。

  • 3)widget间通信机制

  • widget有栈来管理
  • widget之间通过包名、本地路径、widgetID等来进行相互调用
  • widget之间同步调用,通过参数和返回值来进行数据交换
    Markdown
  • 4)widget生命周期管理
  • 每个Widget都有独立的生命周期,如Start,Active,Suspend,Resume,Finish等,每个生命周期的状态都可以通过平台的On函数来通知Widget进行相应的处理。
  • 4、 应用热修复

    App上线之后,需要修复BUG。应用热修复能力,实现widget(HTML/CSS/JS)包和原生插件的动态更新。

    Markdown

    5、窗口管理

  • 每个widget应用中有一个窗口栈,窗口栈实现了窗口层级的管理。
  • 引擎提供了四种类型的窗口包括:

  • (1)普通窗口:封装webview、页面弹动、上拉加载,下拉刷新,不可以改变窗口frame。
  • (2)浮动窗口:封装webview,可以改变窗口frame。
  • (3)多页面浮动窗口:封装多个webview,实现多个webview的平滑切换,可以改变窗口的frame。
  • (4)弹出模态窗口(present window) 弹出模态窗口主要使用于以下这几种情形:收集用户输入信息、临时呈现一些内容、临时改变工作模式、显示一个新的window层级,这几种情形都会暂时中断程序正常的执行流程,主要作用是收集或者显示一些信息。
  • 窗口之间通信:窗口的唯一标识是窗口名称,通过PUB/SUB模式,来实现窗口之间的通信。 Markdown

  • 窗口特效包括:

  • (1)窗口动画:支持多种窗口切换动画。
  • (2)侧边栏窗口: 封装webview,实现左右侧边栏特效。
  • (3)手势滑动切换窗口:通过手势向右滑动实现窗口的关闭特效。
  • Markdown

    6、多终端适配

    引擎(Android)会根据不同密度的手机,设置webview的默认字体大小,实现AppCanUI框架中的em值与像素值最佳映射。 基于AppCan的UI框架开发应用即可实现多终端的屏幕适配。

    Markdown 7、插件机制

  • 通过iOS和Android提供注入JS代码到webview方式,实现JS与原生接口的相互调用。
  • 8、 解密机制

  • 针对加密的widget应用,应用唯一密钥,实现动态解密。
  • 9、崩溃捕获

  • 应用崩溃之后,引擎能够捕获崩溃异常,记录崩溃日志到手机指定目录下。
  • 10、 消息推送

  • 集成消息推送机制,封装成JS对象,便于开发者直接在HTML页面中直接调用相关接口,处理推送消息
  • 11、 启动图机制

  • 配置启动图,能够适配多种分配率
  • 配置广告图,能够实现启动图消失之后需要显示的图片
  • 2.widget机制

      通过AppCan平台生成的应用,可以理解为一个Widget包(即在IDE创建项目是看到的'phone'文件夹)和AppCan引擎框架组成的。通常的情况下,一个应用是由一个Widget+AppCan引擎框架构成。而'n个Widget+AppCan'是针对主widget以及普通widget的一种增强性的扩展机制,可以将具有特定功能的widget封装成一个单独的widget包存放到plugin目录下,然后通过js扩展接口调用,以达到功能扩展的目的。

      由于这部分资料在 [开发指导].开源&原生能力开发专题——《Widget插件扩展机制》部分均有详细介绍,在此不作赘述。

    3.插件机制

      AppCan引擎框架提供实现原生能力的机制,而这些实现原生功能的组件称之为插件。目前平台提供了丰富的插件资源,开发者可以根据自身业务需求来对开源插件进行扩展或自行开发。

      源码在官网插件库均可下载,分为终端设备系统调用API、界面API、网络API、多媒体API、第三方API等几个类别,足够覆盖爱博体育下载应用开发中的大部分常用场景。其中包含最新的支付宝插件、百度地图插件,备受关注的QQ登录功能插件、微信分享(支付)插件,以及推送、摄像头、传感器、LBS、二维码、文件读写、网络连接、上传下载、短信、彩信、电话、邮件、图片、其他第三方支付、音频、视频、压缩、原生控件元素等核心功能。

      详细实现参考[开发指导].开源&原生能力开发专题——《Android插件扩展机制》《iOS插件扩展机制》

    4.自定义引擎

      自定义引擎开发资料在 [开发指导].开源&原生能力开发专题——《自定义引擎机制说明》部分均有详细介绍,在此不作赘述

    4.1开源地址

      iOS引擎托管地址: https://github.com/AppCanOpenSource/appcan-ios

      Android引擎托管地址: https://github.com/AppCanOpenSource/appcan-android

    4.2开源协议

      AppCan引擎插件开源遵循LGPL(GNU宽通用公共许可证)第三版: 英文版https://en.wikipedia.org/wiki/GNU_Lesser_General_Public_License

    阅读各章节,请看左侧导航

    自定义插件扩展详细资料可查看:http://newdocx.appcan.cn/dev-guide/openSource-native-capability-dev/widget-plugin

    iOS Native插件扩展机制请了解:http://newdocx.appcan.cn/dev-guide/openSource-native-capability-dev/ios-native

    Android Native插件扩展机制请了解:http://newdocx.appcan.cn/dev-guide/openSource-native-capability-dev/android-native


    免费注册,快速体验

    还需要帮助吗? 联系我们
    最新更新 12th Oct 2019