鸿蒙版cordova/PhoneGap先容

打印 上一主题 下一主题

主题 1016|帖子 1016|积分 3048

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
鸿蒙版cordova先容

鸿蒙版cordova或PhoneGap,这里统称为鸿蒙版Cordova,遵守cordova官方,不再利用鸿蒙版PhoneGap了。
cordova移动端跨平台研发的重要框架之一,支持Android和Ios,官方并不支持鸿蒙系统,harmony-cordova是鸿蒙的cordova,这里主要先容鸿蒙版corddova,安卓和Ios请检察cordova官方文档,cordova除了cordova sdk外,还有很多的插件,开辟者根据自己的APP的须要可以选择利用相干的插件,
鸿蒙版cordova  sdk地址

鸿蒙版cordova已经上架鸿蒙三方库中心,开辟者可以直接在DevEco studio中直接利用。cordova sdk 三方库地址:

https://ohpm.openharmony.cn/#/cn/detail/harmony-cordova


鸿蒙版cordova支持的插件

插件ID

接口地址

说明

cordova-plugin-whitelist
GitHub - apache/cordova-plugin-whitelist: [DEPRECATED] Apache Cordova - Whitelist Plugin
白名单
cordova-plugin-network-information
GitHub - apache/cordova-plugin-network-information: Apache Cordova Network Information Plugin
网络管理
cordova-plugin-inappbrowser
GitHub - apache/cordova-plugin-inappbrowser: Apache Cordova InAppBrowser Plugin
内置浏览器
cordova-sqlite-storage
GitHub - storesafe/cordova-sqlite-storage: A Cordova/PhoneGap plugin to open and use sqlite databases on Android, iOS and Windows with HTML5/Web SQL API
嵌入式数据库
cordova-plugin-camera
GitHub - apache/cordova-plugin-camera: Apache Cordova Plugin camera
相机功能
cordova-plugin-file
GitHub - apache/cordova-plugin-file: Apache Cordova File Plugin
当地文件管理
cordova-plugin-file-transfer
GitHub - apache/cordova-plugin-file-transfer: Apache Cordova File Transfer Plugin
上传和下载文件
cordova-plugin-dialogs
GitHub - apache/cordova-plugin-dialogs: Apache Cordova Dialogs Plugin
弹窗
cordova-plugin-datepicker
GitHub - VitaliiBlagodir/cordova-plugin-datepicker
日期选择
phonegap-plugin-barcodescanner
GitHub - phonegap/phonegap-plugin-barcodescanner: cross-platform BarcodeScanner for Cordova / PhoneGap
扫码
cordova-plugin-media-capture
GitHub - apache/cordova-plugin-media-capture: Apache Cordova Media Capture Plugin
视频录制
cordova-plugin-alipay-v2
调用接口:GitHub - hhjjj1010/cordova-plugin-alipay-v2: 支付宝《APP支付》cordova插件
依赖插件:https://ohpm.openharmony.cn/#/cn/detail/@cashier_alipay%2Fcashiersdk
自界说支付宝支付插件,只是按照文档接口调用了支付宝插件依赖支付宝官方插件
aliyun.uploadvod
暂无文档,需接洽开辟者
阿里云OSS插件,实现移动端直接上传文件到阿里云OSS
cordova-plugin-android-permissions
GitHub - NeoLSN/cordova-plugin-android-permissions: This plugin is designed for supporting Android new permissions checking mechanism.
授权插件,接口永远返回为拥有权限,主要为兼容android移植到harmony利用的,制止修改Android端的代码,harmong授权已下放到各个插件,无需单独编写代码
phonegap-bluetooth-plugin
GitHub - tanelih/phonegap-bluetooth-plugin: Bluetooth plugin for PhoneGap version 2.6.0+
经典蓝牙插件
cordova-plugin-ble-central
GitHub - tanelih/phonegap-bluetooth-plugin: Bluetooth plugin for PhoneGap version 2.6.0+
低功耗蓝牙插件
cordova-base64-to-gallery
GitHub - goiarlabs/cordova-base64-to-gallery: :warning: this project is not longer maintained - Cordova plugin to save base64 data as a png image into the device
生存图片到相册
cordova-plugin-huawei-push
GitHub - waitaction/cordova-plugin-huawei-push: 华为推送Cordova插件
华为推送,自界说插件,详细利用请咨询开辟者

Android移植鸿蒙步调

1,打开DevEco创建项目,选择Empty Ability进入下一步,填写须要信息,这里要注意,bundle name 先填写com.example.myapplication,也就是保持默认稳定,因为在没有cordova.crt证书的情况下,cordova鸿蒙版要求bundle name必须为com.example.myapplication,主要用于研发测试,如果开辟测试完成要修改bundle name上架鸿蒙应用市场,请接洽开辟者申请cordova.ert证书,或者事先接洽开辟者提供技能服务。

2,项目创建乐成后,复制原有Android studio的工程assests/www目次下面的全部文件到鸿蒙工程entry/src/main/resources/目次下,注意直接复制原andriod工程www目次下的文件,不包含www。

3,复制原android工程res/xml目次下的config.xml文件到鸿蒙工程entry/src/main/resources/目次下。

4,打开DevEco studio的Terminal终端,进入工程目次,执行 ohpm install harmony-cordova 安装本插件。

5,打开鸿蒙工程文件entry/src/main/etx/pages/Index.ets文件,修改代码如下:

  1. import { MainPage, pageBackPress, pageHideEvent, pageShowEvent } from 'harmony-cordova/Index';
  2.   @Entry
  3.   @Component
  4.   struct Index {
  5.     onPageShow(){
  6.       pageShowEvent(); //页面显示通知cordova
  7.     }
  8.   
  9.     onBackPress() {
  10.       pageBackPress(); //拦截返回键由cordova处理
  11.       return true;
  12.     }
  13.     onPageHide() {
  14.       pageHideEvent(); //页面隐藏通知cordova
  15.     }
  16.   
  17.     build() {
  18.       RelativeContainer() {
  19.         MainPage(); //webview首页index.html
  20.       }
  21.       .height('100%')
  22.       .width('100%')
  23.     }
  24.   }
复制代码


6,打开鸿蒙工程文件/entry/src/main/ets/entryAbility/EntryAbility.ets文件,修改onCreate函数如下

  1. import { AbilityConstant, UIAbility, Want } from '@kit.AbilityKit';
  2.       import { hilog } from '@kit.PerformanceAnalysisKit';
  3.       import { window } from '@kit.ArkUI';
  4.       import { webview } from '@kit.ArkWeb';
  5.       import { setSchemeHandler } from 'harmony-cordova/Index';
  6. ...
  7. onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
  8.     webview.WebviewController.initializeWebEngine();//webview引擎初始化
  9.     setSchemeHandler();//设置webview
  10.     schemehilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate');
  11. }
复制代码
7,鸿蒙混合研发,也许您会增长其他page页面,不一定应用的首页为cordova webview(index.html)的首页,比方应用增长了鸿蒙的原生的启动页面,包含首页弹窗,同意隐私政策后,然后再从启动页面进入cordova的页面,如许制止在用户没有同意隐私政策的情况下,初始化cordova sdk,因为初始化cordova sdk,系统读取了设备的网络状态,因为国内相干法律规定,在用户没有同意隐私政策的情况下,不答应读取设备的网络标识。
8,做以上代码修改后,鸿蒙的移植已经完毕,可以利用模拟器或者真机进行编译和测试了。

Ios移植鸿蒙步调

如果您的项目有android和Ios的工程,请参考android项目移植项目标鸿蒙下,如果您的项目没有andriod工程,只有Ios工程,请利用如下方法移植,移植时大部门内容和安卓一样,只是复制的文件的路径不一致,以下只先容不同部门,雷同部门请参考android移植步调。
1,复制Xcode的Ios工程目次下的Staging/www目次下的全部文件到鸿蒙工程entry/src/main/resources/目次下。 2,Xcode工程的config.xml文件在Staging目次下,Xcode工程的该文件不能直接被鸿蒙版cordova利用,须要进行转换,该文件主要记录的是插件的名称和初始化的类,因为鸿蒙版是根据android的config.xml进行插件初始化的,因此须要将Xcode工程config.xml转为安卓的config.xml,请将Xcode工程利用node参加安卓平台,系统会自动天生android版的config.xml。然后将文件复制到鸿蒙版工程的entry/src/main/resources/下。
附加说明:本人以为利用cordoca跨平台研发,一样寻常至少都会包含android和ios两大平台,很少只有ios平台,没有android平台的,以是大部门移植鸿蒙参考android移植步调,后续升级SDK会兼容Ios工程的config.xml,无需转换就可以利用。

新项目,一次开辟适用于andriod、Ios和Harmony三大平台

由于cordova官方当前并不支持HarmonyOS平台,利用node无法直接将HarmonyOS参加到cordova,也无法直接安装插件到HarmonyOS,因此对于新项目要一次开辟满意三大平台的话,建议先通过node参加Android和Ios平台和安装插件,后续研发可以利用Android studio研发和调试,待研发乐成后,然后再在Xcode和DevEco做跨平台适配。Xcode适配请参考cordova的官方文档,HarmonyOS适配请参考以上Android的移植步调。

特别说明

当前版本不支持利用者自界说插件研发,如果该版本没有包含您要利用的插件,或者您的项目中有Android或Ios的自界说插件,须要移植到HarmonyOS平台,请您和本开辟者接洽,获取技能支持。
利用鸿蒙版cordova sdk在开辟测试阶段务必将bundle name修改为com.example.myapplication,如果将bunlde name改为正式的Id,鸿蒙版cordova sdk会读取entry/src/main/resources/目次的cordova.crt证书文件,用于验签,如果该文件不存在,启动应用后,应用会闪退。如果应用的bundle name为com.example.myapplication,鸿蒙版 cordova sdk会跳过验签,不检测cordova.crt文件。但是上架鸿蒙应用市场,必须将bundle name改为正式的id,以是请接洽开辟者申请cordova.ert证书,别的由于操纵系统之间的差别,虽然保持了cordova的插件接口稳定,但是返回值会有所调整,后续文档会渐渐美满,在利用本插件跨平台研发时请接洽开辟者提供技能服务。


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

知者何南

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表