Uniapp 鸿蒙 next 初体验(+随笔)

上周看完了《唐朝诡事录之西行》,续作水准个人感觉还是可以的,一个诡字延续的也比较成功,故事的多重反转也算比较成功,不唐突,基本能够自洽。而我向来对志怪之事也颇为好奇,不管是书籍、还是影视作品多有涉猎。如果说从中学到了什么东西,那就是人生似乎毫无意义,当鬼也区别不大,所有的一切皆为虚妄。

人生起起落落,不过还是为了那蝇营狗苟的利益,仅此而以,不管是鬼神志怪,还是人心险恶,都有异曲同工之效。昨晚辗转反侧之计,回想过往种种,终究还是常人一个,可能连平均水平都不够。算了算手里还有几块钱,在这之后,忽然觉得活着也没什么意义。甚至连失踪、消失的想法都有了。昨天下午才加上了一个倒计时,想着自己还能再活六十年,忽然间就觉得那个倒计时应该改到明天。

也许等哪天这个想法足够坚定了,后路也想好了,取一万现金,开上那辆风烛残年的老车,或许沿着丝绸之路一路西行,等哪天看到满天的黄沙飞舞之际,我就驱车进去,淹没在这滚滚黄沙里。

最后的这段路程,自然不会选择进西藏去进行所谓的洗涤灵魂。我的灵魂比布达拉宫的那些供奉的僧侣要干净,几十吨黄金装饰的富丽堂皇的布达拉宫,我没有去过,但是如果说佛需要镀金身才渡人,那这金身不镀也罢。那些用少女的骨头、头骨制成的法器,又如何超度活人?

如果牺牲才能渡人,那这与妖怪无所区别,如果我是那个被献祭的少女,我只会留下恶毒的诅咒。当然啊,愚昧会给那些少女洗脑,告诉她这是他的荣耀以及光荣。所以,那些一路跪拜去西藏的,顶礼膜拜的到底是魔是佛?

所以,这个最后一段路程我不会选择西藏,因为,我是一个好人。

好了,言归正传。其实本来要写纯技术文的,但是昨晚脑子里装的东西有点多。索性一并写了吧。

其实 uniapp 对于鸿蒙 next 的支持,应该是前段时间就出来了,但是由于自己的懒惰心理,一直拖着。直到大约周二的时候才想起来尝试将闺蜜圈 app 跑到鸿蒙上。

uni 对于鸿蒙的支持,仅支持 vue3 的项目,所以在体验之前,需要先将 2 的项目转换成 3 的项目,uni 官方也给出了文档:

https://uniapp.dcloud.net.cn/tutorial/migration-to-vue3.html

这件工作,在大约上个月就尝试过了,目前能以 vue3 的配置跑起来,主要是各种属性以及环境变量的接口变更:

// 之前 - Vue 2
Vue.prototype.$http = () => {};

// 之后 - Vue 3
const app = createApp({});
app.config.globalProperties.$http = () => {};

这些调整做完了之后基本就可以跑起来了,vue3 不支持 css .deep 语法,我就去掉了,目前看来倒是也基本正常。

至于怎么让 uni 支持鸿蒙 next 开发,官方也给了文档:

https://uniapp.dcloud.net.cn/tutorial/harmony/dev.html#%E5%85%BC%E5%AE%B9%E6%80%A7%E8%AF%B4%E6%98%8E

环境需求:

  • DevEco-Studio 5.0.3.400 以上 下载地址
  • 鸿蒙系统版本 API 12 以上 (DevEco-Studio有内置鸿蒙模拟器)
  • HBuilderX-alpha-4.22 以上

不过这个 deveco 下载需要先申请开发者资格,这个大约需要一天时间,如果顺利的话。于是周二申请之后,周三拿到了开发资格。

后续是下载模拟器,这个模拟器的下载,也并不是可以直接可以下载的,需要申请模拟器的体验资格。

这个东西申请又需要一天的时间,官方给的的时间是8 个小时,但是这个由于mbp 的磁盘满了,申请了之后也只能在家里的windows 电脑上体验。

申请过了之后才能下载模拟器镜像创建模拟器,否则是没有模拟器可以运行的。模拟器运行起来之后,到这里鸿蒙开发工具的配置基本就算完成了。

后续是 hbuilder 的配置,点击设置,配置华为开发工具的路径:

这个路径最好是到 exe,不要填到目录下就结束,最后一行是新增的,如果就配置到 studio 路径,大概率启动 deveco 会失败。

{
"bytedanceApp.devTools.path" : "",
"editor.colorScheme" : "Default",
"editor.wordWrap" : true,
"qqApp.devTools.path" : "g:\\Program Files (x86)\\Tencent\\QQ小程序开发者工具",
"harmony.devTools.path" : "G:\\Huawei\\DevEco Studio\\bin\\devecostudio64.exe" 
}

编辑 manifest.json 添加鸿蒙离线 sdk,其实这个 sdk 本质上是个鸿蒙的项目模板,叫做 sdk 而以,如果把他当成个 sdk 就会出现认知上的一些问题,如果当成一个模板工程那就简单了。每个鸿蒙项目单独复制一个模板项目,进行编译即可。如果是 sdk,那么需要配置那么多不同的 sdk 路径吗?

"app-harmony": {
"projectPath": "E:\\uniapp_projects\\huawei\\134"
},

然后就可以在hbuilder 中编译,选择到运行 deveco 了。

如果 hbuilder 提示运行失败也不要紧,直接去 deveco 中运行即可。本质山是 hbuilder 把资源编译之后扔到了 deveco 的示例项目中(也就是前文提到的所谓的鸿蒙离线 sdk)。

到这里,发现自己之前项目升级还算是比较成功,不过由于 unihttp 请求的代码 vue2 以及 vue3 也有区别,代码尚未调整,所以目前还是有些问题的,不过能跑起来,这基本就成功了一大半了。

几个问题:

1.code:9568347 error: install parse native so failed

出现这个错误,按照官方文件解释是编译的原生代码架构有问题参考https://developer.huawei.com/consumer/cn/doc/harmonyos-faqs-V5/faqs-app-debugging-14-V5

需要添加以下架构:

"buildOption": {
  "externalNativeOptions": {
    "abiFilters": ["arm64-v8a", "x86_64"]
  },
}

然而,这个不是解决 uniapp 的问题的办法,添加之后依然报错,后来以为是自己写的 uni 的原生插件有问题。将原生插件删除之后依然报错,继续上网搜索发现 flutter 对于鸿蒙 windows x86 模拟器的支持也有问题,到此刻忽然发现问题的关键可能在于 uniapp 给的所谓的鸿蒙离线 sdk 中压根就没包含 x86_64 架构的二进制包。

既然1.3.5 有问题,之前在一篇文章https://blog.csdn.net/weixin_46591361/article/details/140543443看到过 1.3.4 的离线包,那这个也有问题吗?

下载 134 的包,替换掉 135 的包,重新打包安装一切 ok 了,这个就是上面运行成功的那张图了。

1.3.4 下载链接: https://web-ext-storage.dcloud.net.cn/uni-app/harmony/zip/template-1.3.4.tgz

2.权限问题:code:9568289 error: install failed due to grant request permissions failed

官方给的方案:https://developer.huawei.com/consumer/cn/doc/harmonyos-faqs-V5/faqs-app-debugging-10-V5

该问题是由于默认应用等级为normal,只能使用normal等级的权限,如果使用了system_basic或system_core等级的权限,将导致报错。

对于HarmonyOS应用,请参考使用ACL签名配置指导完成ACL提权。

搜了一通,也没什么建设性方案,既然是权限问题,那肯定有定义的地方,直接在鸿蒙项目代码搜索,找到以下文件:

将 requestPermissions 下多余的权限删除即可,这个东西如果要配置权限申请等乱七八糟的东西周期太长了,如果要上线运行,或者一定需要这些权限还是按照官方文档老老实实的申请吧。

至于后续什么时候打鸿蒙 next 的原生包发布,看情况吧,毕竟还有一些代码没改完。在 135 的代码上也不好调试,一切从长计议,再说吧。

折腾来折腾去,真的有意义吗?

☆版权☆

* 网站名称:obaby@mars
* 网址:https://lang.ma/
* 个性:https://oba.by/
* 本文标题: 《Uniapp 鸿蒙 next 初体验(+随笔)》
* 本文链接:https://loli.gifts/2024/08/17791
* 短链接:https://oba.by/?p=17791
* 转载文章请标明文章来源,原文标题以及原文链接。请遵从 《署名-非商业性使用-相同方式共享 2.5 中国大陆 (CC BY-NC-SA 2.5 CN) 》许可协议。


You may also like

51 comments

  1. Level 3
    Google Chrome 114 Google Chrome 114 Android 10 Android 10 cn山东省青岛市 联通

    树欲静而风不止,就得折腾哈,宇宙中就没有静止不动的物质。大的属性如此。

      1. Level 5
        Microsoft Edge 126 Microsoft Edge 126 Windows 10 Windows 10 us美国加利福尼亚州洛杉矶 南宁云计算数据中心机房

        赏花赏月赏灵妹

  2. Level 5
    Microsoft Edge 126 Microsoft Edge 126 Windows 10 Windows 10 us美国加利福尼亚州洛杉矶 南宁云计算数据中心机房

    灵妹妹,要不我们一起私奔去出家吧

    1. 公主 Queen 
      Google Chrome 126 Google Chrome 126 Mac OS X 10.15 Mac OS X 10.15 cn山东省青岛市 联通

      可别,等我哪天私奔了,定然是去寻死了。

      1. Level 5
        Microsoft Edge 126 Microsoft Edge 126 Windows 10 Windows 10 us美国加利福尼亚州洛杉矶 南宁云计算数据中心机房

        别啊,世界因灵妹妹更美丽
        过一种生活也未必不行

  3.  Level 6
    Google Chrome 127 Google Chrome 127 Mac OS X 10.15 Mac OS X 10.15 cn北京市 联通

    再活六十多年,我就一百多岁了,这个愿望我真的能实现吗😂

    1. 公主 Queen 
      Google Chrome 126 Google Chrome 126 Mac OS X 10.15 Mac OS X 10.15 cn山东省青岛市 联通

      可以的,使劲活着,最起码把退休金领够了啊。

      1.  Level 6
        Google Chrome 127 Google Chrome 127 Mac OS X 10.15 Mac OS X 10.15 cn北京市 联通

        我要加强体育锻炼,就冲退休金,我就得活够本。多活一年多给我闺女攒一年 angel

  4.  Level 4
    Google Chrome 127 Google Chrome 127 GNU/Linux GNU/Linux cn贵州省贵阳市 移动

    一万现金+风烛残年的老车走丝绸之路一路西行,呃… 估计还没见到滚滚黄沙 这车就在进藏的路上抛锚了😂

      1.  Level 4
        Google Chrome 127 Google Chrome 127 GNU/Linux GNU/Linux cn贵州省贵阳市 移动

        要不 那一万块的现金分了吧 不然死了钱埋了怪可惜

        1. 公主 Queen 
          Google Chrome 126 Google Chrome 126 Mac OS X 10.15 Mac OS X 10.15 cn山东省青岛市 联通

          西藏倒也有个吸引我的地方,青海湖,除此之外就没了

          1.  Level 4
            Google Chrome 127 Google Chrome 127 GNU/Linux GNU/Linux cn贵州省贵阳市 移动

            西藏不止青海湖有看头哦 可去的地方多了 不过这个也要看个人喜好吧
            咦对了 你不是要去淹黄沙嘛 转投青海湖了 哈哈

            1. 公主 Queen 
              Google Chrome 126 Google Chrome 126 Mac OS X 10.15 Mac OS X 10.15 cn山东省青岛市 联通

              青海湖可以先去看看,还是投黄沙好啊,跟法老一个待遇,说不定还能变成个木乃伊神马的。

  5. Level 1
    Google Chrome 118 Google Chrome 118 Windows 10 Windows 10 cn广东省深圳市 电信

    这部剧还没看,第二部续作的评分居然比第一部还高,真心不容易。

    1. 公主 Queen 
      Google Chrome 126 Google Chrome 126 Mac OS X 10.15 Mac OS X 10.15 cn山东省青岛市 联通

      那就买一台吧,也不是很贵,不过原生鸿蒙就算了。

  6.  Level 5
    Microsoft Edge 126 Microsoft Edge 126 Windows 11 Windows 11 cn河南省漯河市 联通

    你现在手里有7了,以开发者身份应该直接申请资格就可以真机测试了吧,还需要模拟吗?看了唐诡,就能接受灵魂摆渡了,原班人马,我一度认为秦孝白那个单元致敬的就是灵摆,尤其是他唱的和灵摆插曲《君生我未生》一个调调。唐诡2结尾九天神女的出现,灵摆3大主人公算是凑齐了。

    1. 公主 Queen 
      Google Chrome 126 Google Chrome 126 Mac OS X 10.15 Mac OS X 10.15 cn山东省青岛市 联通

      给你个模拟器用就不错了,还想要真机。
      九天神女这是啥?我咋完全没印象了。

      1.  Level 5
        Microsoft Edge 126 Microsoft Edge 126 Windows 11 Windows 11 cn河南省漯河市 联通

        最后出场的宫女,老太子新皇上,秦孝白,灵魂摆渡(灵摆三部曲、番外、大电影)的三大主角,对应九天玄女娅、鬼差赵吏和蚩尤夏冬青啊。

    2. 公主 Queen 
      Google Chrome 126 Google Chrome 126 Mac OS X 10.15 Mac OS X 10.15 cn山东省青岛市 联通

      关键是给了真机刷机的资格我也不会刷的,刷了基本就没法用了。

  7. Level 4
    Google Chrome 127 Google Chrome 127 Windows 11 Windows 11 cn陕西省宝鸡市岐山县 联通

    前面:文字深奥,看不懂;
    后面:技术深奥,看不懂;
    总结:阿巴阿巴

  8.  Level 5
    WebView 4 WebView 4 Android 12 Android 12 cn广东省珠海市 电信

    我昨晚才睡不着,凌晨3点多还在思考,为何上半辈子过得如此困难,也就40开始过得好一些,所以我很想尽量活久一点

    1. 公主 Queen 
      Google Chrome 120 Google Chrome 120 Windows 10 Windows 10 cn山东省临沂市 联通

      终日奔波苦 一刻不得闲
      人生何其短
      我是觉得起点太低了呗。
      逼乎上老有人讨论穷人就不该生孩子的问题,如果自己想去投胎当穷人的孩子,那就生,不然还是别生了。自己都不去,还劝别人生。
      太苦了,没什么意思。

  9.  Level 5
    Microsoft Edge 123 Microsoft Edge 123 Windows 11 Windows 11 cn广东省珠海市 电信

    只有你一个人养一个孩子,是很辛苦的。其实在中国每个人都是一刻不得闲,基本都是加班加班996,都很辛苦,在中国只能这样,认了

    1. 公主 Queen 
      Google Chrome 120 Google Chrome 120 Windows 10 Windows 10 cn山东省临沂市 联通

      毕竟,那个只渡自己,不渡众生,众生是为自己服务的

    1. 公主 Queen 
      Google Chrome 126 Google Chrome 126 Android 10 Android 10 cn山东省青岛市 联通

      不能说一毛一样,只能说毫无关系。鸿蒙就不是Java的虚拟机 哈哈哈

    1. 公主 Queen 
      Google Chrome 126 Google Chrome 126 Mac OS X 10.15 Mac OS X 10.15 cn山东省青岛市 联通

      用的蛮多的,公司项目我一般是要求直接 uni 搞定,不做原生。
      我自己开发也是基于 uni 搞,毕竟能省好多套代码的维护成本。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注