H5P.iOS
H5P.iOS copied to clipboard
HTML5 Plus for iOS
iOS平台5+App/uni-app运行环境开源项目
重要:请使用HBuilderX2.4.6-20191210生成本地打包App资源,否则uni-app项目可能提示“运行环境版本和编译器版本不一致”,详情参考https://ask.dcloud.net.cn/article/35627
说明
此次更新梳理了工程结构,现在开发者可以直接修改引擎中的代码,自主编译出新的引擎。
如果开发者要修改本工程源码,请注意“引擎”和“插件”的分界线。 “引擎”是对5+/uni-app规范的实现,修改引擎源码可以优化对规范的实现,但不是提供规范外的功能。规范外的功能,应该做成“插件”。如需公开,则放到插件市场。 比如扫码,5+/uni-app的规范已经存在,但开发者对扫码效率不满意,提供自己更好的实现,则可以改动本源码,重新Build引擎。 而如果是想新增一个ar功能,则应该做成插件,而不是加入到本工程中。即,开发者不能自主新增5+/uni-app的js API规范。
任何一个项目的源码,吃透整体都不是一件容易的事情。一般开发者有改动需求,也多集中在一些能力或SDK的实现上。 比如扫码、视频、地图、直播、摄像头、相册、蓝牙等,以及某些界面的文字。 只关注某些能力模块,吃透和修改会更加容易。
受精力所限,某些模块,比如DCloud定制过的weex源码,还未规整好,暂时以库的方式提供,未来会提供完整源码。不过这不影响开发者修改其他源码和编译工程。
模块与源码对应关系
| 功能模块 | 源码目录 | 5+APP项目 | uni-app项目 |
|---|---|---|---|
| Accelerometer(加速度传感器) | libAccelerometer | plus.accelerometer | https://uniapp.dcloud.io/api/system/compass |
| Audio(音频) | libMedia | plus.audio | https://uniapp.dcloud.io/api/media/record-manager https://uniapp.dcloud.io/api/media/audio-context |
| Barcode(二维码) | libBarcode | plus.barcode | https://uniapp.dcloud.io/api/system/barcode |
| Bluetooth(低功耗蓝牙) | libBlueTooth | plus.bluetooth | https://uniapp.dcloud.io/api/system/bluetooth |
| Camera(摄像头) | libCamera | plus.camera | https://uniapp.dcloud.io/api/media/image |
| Contacts(通讯录) | libContacts | plus.contacts | https://uniapp.dcloud.io/api/system/contact |
| Fingerprint(指纹识别) | libFingerprint | plus.fingerprint | https://uniapp.dcloud.io/api/other/authentication |
| Geolocation(系统定位) | libGeolocation | plus.geolocation | https://uniapp.dcloud.io/api/location/location |
| Geolocation(百度定位) | BaiduLocationPlugin | plus.geolocation | https://uniapp.dcloud.io/api/location/location |
| iBeacon | libBeacon | plus.ibeacon | https://uniapp.dcloud.io/api/system/ibeacon |
| IO(文件系统) | libIO | plus.io | https://uniapp.dcloud.io/api/file/file |
| Maps(地图基础库) | libMap | plus.map | https://uniapp.dcloud.io/api/location/map |
| Maps(高德德图) | AMapImp | plus.map | https://uniapp.dcloud.io/api/location/map |
| Maps(百度地图) | bmapimp | plus.map | https://uniapp.dcloud.io/api/location/map |
| Messaging(短彩邮件消息) | libMessage | plus.messaging | |
| Oauth(登录基础库) | libOauth | plus.oauth | https://uniapp.dcloud.io/api/plugins/login |
| Oauth(小米登录) | MiOauth | plus.oauth | https://uniapp.dcloud.io/api/plugins/login |
| Oauth(QQ登录) | QQOauth | plus.oauth | https://uniapp.dcloud.io/api/plugins/login |
| Oauth(新浪微博登录) | SinaWBOauth | plus.oauth | https://uniapp.dcloud.io/api/plugins/login |
| Oauth(微信登录) | WXOauth | plus.oauth | https://uniapp.dcloud.io/api/plugins/login |
| Orientation(设备方向) | libOrientation | plus.orientation | |
| Payment(支付基础库) | libPayment | plus.payment | https://uniapp.dcloud.io/api/plugins/payment |
| Payment(支付宝支付) | alixpayment | plus.payment | https://uniapp.dcloud.io/api/plugins/payment |
| Payment(苹果应用内支付) | IAPPay | plus.payment | https://uniapp.dcloud.io/api/plugins/payment |
| Payment(微信支付) | wxpay | plus.payment | https://uniapp.dcloud.io/api/plugins/payment |
| Push(推送基础库) | libPush | plus.push | https://uniapp.dcloud.io/api/plugins/push |
| Push(个推推送) | GeTuiPush | plus.push | https://uniapp.dcloud.io/api/plugins/push |
| Push(小米推送) | XiaomiPush | plus.push | https://uniapp.dcloud.io/api/plugins/push |
| Push(UniPush推送) | UniPush | plus.push | https://uniapp.dcloud.io/api/plugins/push |
| Proximity(距离传感器) | libPGProximity | plus.proximity | |
| Share(分享基础库) | libShare | plus.share | https://uniapp.dcloud.io/api/plugins/share |
| Share(QQ分享) | QQShare | plus.share | https://uniapp.dcloud.io/api/plugins/share |
| Share(新浪微博分享) | SinaShare | plus.share | https://uniapp.dcloud.io/api/plugins/share |
| Share(微信分享) | weixinShare | plus.share | https://uniapp.dcloud.io/api/plugins/share |
| Speech(语音识别基础库) | libSpeech | plus.speech | https://uniapp.dcloud.io/api/plugins/voice |
| Speech(百度语音识别) | baiduSpeech | plus.speech | https://uniapp.dcloud.io/api/plugins/voice |
| Speech(讯飞语音识别) | iflySpeech | plus.speech | https://uniapp.dcloud.io/api/plugins/voice |
| Statistic(友盟统计) | libStatistic | plus.statistic | |
| VideoPlayer(视频播放) | libVideo | plus.video.VideoPlayer | https://uniapp.dcloud.io/api/media/video |
| XHR(网络请求) | libXHR | plus.net | https://uniapp.dcloud.io/api/request/request?id=request |
| storage(本地数据存储) | libStorage | plus. storage | https://uniapp.dcloud.io/api/storage/storage?id=setstorage |
| Zip(文件压缩和解压) | libZip | plus.zip | |
| nvue原生组件: barcode(二维码) | DCUniBarcode | 不支持 | https://uniapp.dcloud.io/component/barcode |
| nvue原生组件: map(地图基础库) | DCUniMap | 不支持 | https://uniapp.dcloud.io/component/map |
| nvue原生组件: map(高德地图) | DCUniAmap | 不支持 | https://uniapp.dcloud.io/component/map |
| nvue原生组件: video(视频) | DCUniVideo | 不支持 | https://uniapp.dcloud.io/component/video |
| nvue原生组件: canvas | DCUniCanvas | 不支持 | https://github.com/dcloudio/NvueCanvasDemo |
| nvue原生模块: FaceID | DCUniFaceID | 不支持 | https://uniapp.dcloud.io/api/other/authentication |
运行方式
-
将工程 clone 到本地(或直接下载zip);
-
由于源码依赖了一些第三方库超过限制,无法上传请下载 离线sdk 包并解压,打开 SDK/Libs 目录,将以下库复制到本工程的 SDK/Libs 下,然后编译运行即可
- libBaiduSpeechSDK.a
- liblibWeex.a
- MAMapKit.framework
- IJKMediaFramework.framework
许可协议
本工程大部分源码开源,使用者可以自主修改已公开的源码,编译新版本。 但注意:
- 您不能破解、反向工程、反编译本项目下未开源的各种库文件。
- 未经DCloud书面许可,您不得利用本项目的全部或部分源码、文件来制作与DCloud根据本项目提供的服务相竞争的产品,例如提供自主品牌的开发者服务。
- DCloud所拥有的知识产权,包括但不限于商标、专利、著作权,并不发生转移或共享。
- 您基于本项目,自主开发的代码及输出物,其知识产权归属您所有。除非您通过提交pull request的方式将自己的代码开源。
- 如果您没有违反本许可协议,那么你使用本项目将无需为DCloud支付任何费用。