cocos与鸿蒙交互有文档吗,是不是只能用工程里那种c++的形式,有没有更简单的方法

  • Creator 版本: 2.4.13

  • 目标平台:

  • 重现方式:

  • 首个报错:

  • 之前哪个版本是正常的:

  • 手机型号:

  • 手机浏览器:

  • 编辑器操作系统:

  • 重现概率:

有人回答下吗

Creator发布OH渠道并未内置js引擎(无v8),游戏js实际上是OH内置的napi来解释执行。
Creator和OpenHarmony可以直接互调

我真接在index.ets里面声明了一个function,在creator里面调用不到

参考下sys-ability-polyfill.js里面的实现。直接定义一个function是访问不到的

感谢,已经成功了,在sys-ability-polyfill.js里直接定义方法
globalThis.showBannerAd = function (){
console.log(“harmony showBannerAd”)
}

在creator直接调用就行了

大哥,是直接cc.sys.调用吗

不是。在creator里直接调用 globalThis.showBannerAd()

好的,谢谢大哥

sys-ability-polyfill.js里面不能调用ets的方法,有些必须得写在ets里面的应该怎么调用呀

public static onCommon()
{
const context: common.UIAbilityContext = getContext(this) as common.UIAbilityContext;
let want: Want = {
action: ‘ohos.want.action.appdetail’,
uri: ‘store://appgallery.huawei.com/app/detail?id=’ + “”, // bundleName为需要打开应用详情的应用的包名
};
context.startAbility(want).then(() => {
console.info(‘Start Ability successfully.’);
}).catch((err: BusinessError) => {
console.error(Failed to startAbility. Code: ${err.code}, message: ${err.message});
});
}

getContext()这个必须得写在ets里面

这个要线程通信,你看看editbox的实现

发消息就行了 globalThis.oh.postMessage(“xxx”, xxx )
在ets里面接收

大佬,好使!

看到了,谢谢

请问ets发送给cocos的话是用什么接口?

index.ets里有个workPort this.workPort.postMessage(“xxx”, “xxx”);
可以在cocos_worker.ts里接收事件

好的,谢谢了!