/H5P.iOS

HTML5 Plus for iOS

Primary LanguageObjective-C

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

运行方式

  1. 将工程 clone 到本地(或直接下载zip);

  2. 由于源码依赖了一些第三方库超过限制,无法上传请下载 离线sdk 包并解压,打开 SDK/Libs 目录,将以下库复制到本工程的 SDK/Libs 下,然后编译运行即可

    • libBaiduSpeechSDK.a
    • liblibWeex.a
    • MAMapKit.framework
    • IJKMediaFramework.framework

许可协议

本工程大部分源码开源,使用者可以自主修改已公开的源码,编译新版本。 但注意:

  1. 您不能破解、反向工程、反编译本项目下未开源的各种库文件。
  2. 未经DCloud书面许可,您不得利用本项目的全部或部分源码、文件来制作与DCloud根据本项目提供的服务相竞争的产品,例如提供自主品牌的开发者服务。
  3. DCloud所拥有的知识产权,包括但不限于商标、专利、著作权,并不发生转移或共享。
  4. 您基于本项目,自主开发的代码及输出物,其知识产权归属您所有。除非您通过提交pull request的方式将自己的代码开源。
  5. 如果您没有违反本许可协议,那么你使用本项目将无需为DCloud支付任何费用。