1 TuanjiePlayerAbility.ts 中获取 content 引用
  • globalThis.AbilityContext
    在 TuanjiePlayerAbility.ts 中是可以获取到的
    但是在 tslib 或者中 globalThis.AbilityContext 是无法获取到的
  • GetFromGlobalThis(‘AbilityContext’);
    同样
    在 TuanjiePlayerAbility.ts 中是可以获取到的
    但是在 tslib 或者中 GetFromGlobalThis(‘AbilityContext’) 是无法获取到的
  • globalThis.context
    TuanjiePlayerAbility.ts 和 tslib 中都是可以获取到的

总结:
获取不到的原因是因为二者不在同一个线程中,所以数据没有同步。而 globalThis.context 数据进行了同步。(TuanjieMainWorkerHandler.ts中可以看到)

2 权限
 "requestPermissions": [
      {
        "name": "ohos.permission.CAMERA",
        "reason": "$string:Permisson_camera_des",
        "usedScene": {
          "abilities": [
            "TuanjiePlayerAbility"
          ],
          "when": "always"
        }
      }
  ]
 

刚加上权限的时候 会报错 因为缺少 reason ,添加上就不会报错了

3 ArkUI 实时预览

在进行绘制 UI 的时候 ,如果组件有 Native API 就可能不会显示出来,例如 web 控件就不能展示出来,
在这里插入图片描述
只有纯 UI 控件是可以展示出来的,注释掉 web控件后就可以
在这里插入图片描述

  • 1 首先得打开 ets文件,或者 html 的文件
  • 2 修改属性后保存就可以实时观察到更改

官网 ArkUI 资料
官方案例

4 鸿蒙向团结发送消息

tuanjie.TuanjieSendMessage(“GameObjectName”, “FunctionName”,“Funparams”);
注意:

  • 1 保证 物体一直存在,参数要有且仅有一个 ,并且是字符串类型。
  • 2 调用的方法不能是静态方法。

5 项目的配置信息

module.json5

  • deviceTypes 设备的类型
  • abilities 是ability 相关的 例如 最终hap安装后的名称 ,icon 等
  • requestPermissions 用到的相关权限,及其描述
    注意:
    1项目里用到的权限都必须在这里提前写上,不然会出现请求权限时,无权限弹窗。
    2 权限弹窗拒绝过一次后,下次不会在弹提示弹窗。

6 鸿蒙和团结 消息传递

如果ts的方法中 用到了异步,async 或者 await, C# 是无法直接获取到真实的值的,可以通过
tuanjie.TuanjieSendMessage(“GameObjectName”, “FunctionName”,“Funparams”); 来传递消息和数据

7 团结 tslib鸿蒙桥接文件

在这里插入图片描述
如果 ClassHarmonyToUnity 中有静态方法,C#是无法调用到,
而在StaticClassHarmonyToUnity 中静态方法和 正常方法 都是可以调用到的
C#端 调用方法
在这里插入图片描述
ts端
在这里插入图片描述

8 页面跳转

如果跳转页面不成功 可能是忘记在 main_page.json中添加了
resource/base/profile/main_pages.json

9 鸿蒙手势操作

如果想在 Unity中 自己处理 手势返回的操作
在 鸿蒙里可以将 返回的事件拦截,自己进行处理

在这里插入图片描述

在这里插入图片描述

10 在鸿蒙中 要考虑不同线程的问题

C# 调用 ts ,是在另外的线程里处理的,如果涉及到跳转页面,会报线程错误。鸿蒙有一个模块,解决在同一进程不同线程间,或同一进程同一线程内,发送和处理事件的能力,包括持续订阅事件、单次订阅事件、取消订阅事件,以及发送事件到事件队列的能力。

@ohos.events.emitter (Emitter)

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐