HarmonyOS C++ 调用 ets 层函数报错闪退

这是 C++ 代码:

PTR(LoadResult) CommonSchemeOutJumpProxy::HandByOutLaunch(PTR(Scene) page, std::string url, std::string scheme) {
  auto js_func = aki::JSBind::GetJSFunction("predictOutDomainLaunch");
  //    auto target = std::static_pointer_cast<CRVOhos::CRVPageMirror>(page)->GetTsMirrorRef();
  if (js_func != nullptr) {
    XLOG(INFO) << TAG << "HandByOutLaunch: " << url;
    // promise;;
    std::promise<PTR(LoadResult)> outlaunch_promise;

    // 启动线程触发 rpc;
    aki::TaskRunner::PostTask("main", [&]() {
      // callback
      std::function<void(int, std::string)> callback = [&](int type, std::string url) {
        XLOG(INFO) << TAG << "HandByOutLaunch: child thread notify";
        auto loadResultPtr = std::make_shared<LoadResult>();
        loadResultPtr->type = LoadResult::NumberToLoadResultType(type);
        loadResultPtr->redirect_url = url;
        outlaunch_promise.set_value(loadResultPtr);
      };
      XLOG(INFO) << TAG << "HandByOutLaunch: start predictOutDomainLaunch in child thread";
      // predictOutDomainLaunch
      js_func->Invoke<void>(url, callback);
    });
    // wait for
    auto loadResultPtr = outlaunch_promise.get_future().get();
    XLOG(INFO) << TAG << "HandByOutLaunch: get the loadResult: " << loadResultPtr->type << ", redirect_url: " << loadResultPtr->redirect_url;
    return loadResultPtr;
  } else {
    return nullptr;
  }

这是 JS 层代码:

// 注册外跳 OutDomain 接口;;
aki.JSBind.bindFunction('predictOutDomainLaunch', (url: string, OutDomainLaunchListener: (type: number, url: string) => void): void => {
    hilog.info(0x0000, 'OutLaunch-predictOutDomainLaunch', 'start out launch: %{public}s', JSON.stringify(url));
    setTimeout(() => {
        OutDomainLaunchListener(2, "") // redirect;
    }, 5 * 1000);
});

然后启动后会闪退!

HarmonyOS
1天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
put_get
分享
微博
QQ
微信
回复
1天前
相关问题
HarmonyOS C++如何同步调用JS函数 -
57浏览 • 0回复 待解决
HarmonyOS ETSc++通信
35浏览 • 1回复 待解决
c/c++主动调用ArkTS存在问题
430浏览 • 1回复 待解决
通过Native 调用c++实现文本绘制
1095浏览 • 1回复 待解决
HarmonyOS 项目使用c++库导出函数报错
335浏览 • 1回复 待解决
ArkTS调用C++类中的成员函数
1347浏览 • 1回复 待解决
HarmonyOS 页面返回时应用退报错
627浏览 • 1回复 待解决
ArkTS通过接口访问C++对象
387浏览 • 1回复 待解决
ts给c++传递数组,c++如何解析
1941浏览 • 1回复 待解决
HarmonyOSC++触发通知到ArkTS
110浏览 • 1回复 待解决
HarmonyOS C++函数插桩功能
39浏览 • 1回复 待解决
退报错日记获取有了解的吗?
2779浏览 • 1回复 待解决