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
赞
收藏 0
回答 1
待解决
相关问题
HarmonyOS C++层如何同步调用JS函数 -
57浏览 • 0回复 待解决
HarmonyOS ETS和c++层通信
35浏览 • 1回复 待解决
HarmonyOS Native C函数中有多线程交互,用napi调用会闪退
24浏览 • 1回复 待解决
HarmonyOS ets层传递Array<string>到C++层,C++层如何获取数组内容
86浏览 • 1回复 待解决
c/c++层主动调用ArkTS存在问题
430浏览 • 1回复 待解决
HarmonyOS native层C++子线程中回调函数中调用ArkTS层中定义的类的public成员函数
99浏览 • 1回复 待解决
native c++ assimp源码融入工程编译无报错,模拟器运行闪退怎么回事?
808浏览 • 1回复 待解决
通过Native 调用c++层实现文本绘制
1095浏览 • 1回复 待解决
HarmonyOS 项目使用c++库导出函数报错
335浏览 • 1回复 待解决
HarmonyOS 如何在ArkTS中向C++层注册回调,C++层如何调用回调方法?
234浏览 • 1回复 待解决
ArkTS调用C++类中的成员函数
1347浏览 • 1回复 待解决
如果需要NAPI C++层业务,调用 ArkTS层的类静态成员、静态函数,怎么交互实现
1032浏览 • 1回复 待解决
如果需要NAPI C++层业务,调用 ArkTS层的类静态成员、静态函数,怎么交互实现?
817浏览 • 1回复 待解决
HarmonyOS 页面返回时应用闪退报错
627浏览 • 1回复 待解决
HarmonyOS调用 gattClient.off('BLECharacteristicChange') 项目闪退
374浏览 • 0回复 待解决
HarmonyOS libSysCapabilities目录下的函数如何在C++端调用
454浏览 • 1回复 待解决
HarmonyOS 闪退堆栈信息中的函数和函数所在行号对不上
0浏览 • 1回复 待解决
将C++层分配的对象在ArkTS层管理,ArkTS层通过接口访问C++层对象业务
950浏览 • 1回复 待解决
HarmonyOS native C++ 层传递buffer 到ArkTS 层
62浏览 • 1回复 待解决
ArkTS层通过接口访问C++层对象
387浏览 • 1回复 待解决
ts给c++传递数组,c++层如何解析
1941浏览 • 1回复 待解决
HarmonyOS 从C++层触发通知到ArkTS层
110浏览 • 1回复 待解决
HarmonyOS C++函数插桩功能
39浏览 • 1回复 待解决
闪退和报错日记获取有了解的吗?
2779浏览 • 1回复 待解决
HarmonyOS 在应用启动的时候调用一个ets里面引用了上下文 启动会闪退
0浏览 • 1回复 待解决
可查看此示例文档:
https://developer.huawei.com/consumer/cn/doc/harmonyos-faqs-V5/faqs-ndk-development-V5#section17207123411106