为了账号安全,请及时绑定邮箱和手机立即绑定

如何通过本机反应启动和接收来自另一个应用程序的输出?

如何通过本机反应启动和接收来自另一个应用程序的输出?

烙印99 2023-05-17 14:42:44
我已经使用 VSCode 创建了 React Native 应用程序,现在,我必须使用微型 USB 主机集成阅读器设备。我已经安装了阅读器应用程序来测试 APK。基于网络,我可以通过我当前应用程序的意图调用阅读器应用程序。目前,我已经尝试搜索通过意图调用本机应用程序的教程。但是我被困在放置脚本的方式中。要么我应该创建新文件/将脚本粘贴到现有的/替换现有的./android/app/src/main/java/com/myAppName/MainApplication.java以及如何调用和接收我的扫描仪类的输出./src/screens/scanScreens/mainScanner.js以下是我所做的,但坚持下一步应该做什么:-本机模块将 React-Native 模块集成到现有的原生应用程序 (Android)Android 上与 React Native 的应用到应用通信堆栈接受的答案反应本机意图发射器
查看完整描述

1 回答

?
元芳怎么了

TA贡献1798条经验 获得超7个赞

在浏览了这么多示例和教程之后,我找到了一个简单的解决方案。从这里安装 react-native-activity-result。


我如何执行此操作如下:


import ActivityResult from 'react-native-activity-result';


_onLaunch = async () => {

    const activity = await ActivityResult.resolveActivity('com.causalidea.cikad.showkad.READ_MYKAD');

    if (!activity) {

        console.warn('Please install the othe app.');

        ToastAndroid.show(`MyKAD application reader is not install`, ToastAndroid.SHORT, ToastAndroid.BOTTOM);

    } else {

        console.log(`Activity will be handled by ${activity.package}`);

        ToastAndroid.show(`Activity will be handled by ${activity.package}`, ToastAndroid.SHORT, ToastAndroid.BOTTOM);

    }


    // Start an activity for a result

    let uniqueId = 0;

    let args = {READ_PHOTO: false};

    ToastAndroid.show(`Test`, ToastAndroid.SHORT, ToastAndroid.BOTTOM);

    const response = await ActivityResult.startActivityForResult(uniqueId, 'com.causalidea.cikad.showkad.READ_MYKAD', args);

    ToastAndroid.show(`Result code: ${response.resultCode}`, ToastAndroid.LONG, ToastAndroid.BOTTOM);



    if (response.resultCode !== ActivityResult.OK) {

        ToastAndroid.show(`Invalid result from activity.`, ToastAndroid.SHORT, ToastAndroid.BOTTOM);

        throw new Error('Invalid result from activity.');

    } else {

        console.log('Got the following response: ' + response.data);

        ToastAndroid.show(`Response:\n${JSON.stringify(response)}`, ToastAndroid.SHORT, ToastAndroid.BOTTOM);

    }


    // Finish an activity with a result. This will close the caller too.

    //ActivityResult.finish(ActivityResult.OK, 'com.causalidea.cikad.showkad.READ_MYKAD', args);

}

我可以启动另一个应用程序并等待活动结果,它会相应地执行操作。


查看完整回答
反对 回复 2023-05-17
  • 1 回答
  • 0 关注
  • 129 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号