PhoneGap Android Plugin - 关闭插件 Activity

2023-12-01

我编写了一个 PhoneGap Android 插件,并在那里打开了第二个活动:

 cordova.getActivity().runOnUiThread(new Runnable() {
        @Override
        public void run() {
            Context context = cordova.getActivity().getApplicationContext();
            Intent intent = new Intent(context, secondActivity.class);
            cordova.getActivity().startActivity(intent);
        }
    });

现在我想使用按钮关闭活动并将插件结果发送到 JavaScript,但我无法关闭活动并返回 PhoneGap 应用程序 - 我该如何执行此操作?

我希望有人能帮助我。感谢您的所有回答。


在你的插件中,使用startActivityForResult来自 CordovaInterface 类而不是startActivity来自安卓:

this.cordova.startActivityForResult(this,intent,0);

(0是一个int值,用于标识已启动的Activity,如果需要启动多个Activity,请使用其他数字)

在您的活动中,您添加以下函数以将结果返回到插件:

public void returnResult(int code, String result) {
    Intent returnIntent = new Intent();
    returnIntent.putExtra("result", result);
    setResult(code, returnIntent);
    finish();
}

因此,当您想要退出活动时,您可以使用 RESULT_CANCELED 或 RESULT_OK 以及表示您想要返回的字符串来调用此函数。

最后在您的插件类中添加以下函数:

public void onActivityResult(int requestCode, int resultCode, Intent intent) {
    switch (requestCode) {
    case 0: //integer matching the integer suplied when starting the activity
         if(resultCode == android.app.Activity.RESULT_OK){
             //in case of success return the string to javascript
             String result=intent.getStringExtra("result"); 
             this.callbackContext.success(result);
         }
         else{
             //code launched in case of error
             String message=intent.getStringExtra("result");
             this.callbackContext.error(message);
         }
         break;
    default:
         break;
    }
}

希望这是您正在寻找的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PhoneGap Android Plugin - 关闭插件 Activity 的相关文章

随机推荐

  • Java 进度条反馈

    我有 MainProgramWindow GUI 该GUI有一些变量和一键调用Sql类的createExcel方法并同时启动进度条 public class MainProgramWindow extends javax swing JFr
  • Linphone Android:自签名证书的 TLS 握手错误

    我正在尝试使用自签名证书在 Linphone Android 中配置 TLS 以便能够与 FreeSWITCH SIP 服务器进行通信 但 SSL 握手失败并出现以下错误 通道 0x9ec3c000 SSL 握手失败 X509 证书验证失败
  • 在PYQT5 python中设置文本

    我的程序是基于人工智能的 我在 stackoverflow 中看到了所有关于 Pyqt 设置文本的帖子 我想在单击 自动 AI 按钮时在 lineEdit 中设置文本 def AI click self self lineEdit setT
  • 无法加载捆绑包中的 NIB

    由于未捕获的异常 NSInternalInconsistencyException 而终止应用程序 原因 无法在捆绑包中加载 NIB NSBundle 已加载 名称为 ViewLecturer ViewLecturer viewLectur
  • 使用 Spring Security SAML 将请求参数添加到 SAML 请求

    我需要向 SAML 请求添加请求参数 例如 locale en 以便让登录页面显示正确的语言 我怎么做 我尝试将该属性添加到作为参数发送给开始方法 SamlEntryPoint 的 HttpServletRequest 但这似乎不起作用 有
  • iOS 静态库 + CocoaPods 和重复符号错误

    我正在开发一个静态库 iOS 框架 Jeff Verkoeyen 方式 并且添加了 CocoaPods 来管理依赖项 这是与有关重复符号的其他问题的最大区别 当使用 CocoaPods 的客户端使用我的静态库 框架和我也在使用的第三方库时
  • QSound::play("soundpath") 调用有效,但 QSound 对象无效

    我正在尝试播放声音QSound模块 它尝试使用此代码并工作 QSound play sounds sources BeepSound wav 但我想要这个但不起作用 我创建了一个动态实例QSound并演奏 sounds new QSound
  • java 中的 new Date() 转儒略日期格式

    我需要将 new Date 转换为儒略日期格式 java 中是否有为此构建的函数 我的确切要求是 以儒略日期格式 0YYDDD 表示文件的创建日期 0 数字零 YY 年份的最后两位数 DDD 年内的天数 最多可以是传输日期之前的 7 个日历
  • 如何在 tkinter 中创建日期选择器?

    tkinter 应用程序是否有任何标准方式允许用户选择日期 如果有人仍然需要这个 这里有一个简单的代码 用于使用 tkcalendar 包创建日历和 DateEntry 小部件 pip install tkcalendar 用于安装包 tr
  • 使用 Spring Integration 同时读取 CSV 文件

    我想使用 spring 集成同时处理 CSV 文件 每行将被转换为单独的消息 所以假设我在 CSV 文件中有 10K 行 我想启动 10 个线程 每一行都会传递给这个线程 如果有人向我展示任何示例 那就太好了 Thanks 从 开始Spri
  • 如何编写 Delphi Galileo IDE Expert?

    HI 我想为 D2007 D2009 又名 Galileo IDE 编写一个小型的 Delphi IDE Expert 以便显示一个带有 TMemo 实例的窗口 以及上面备忘录中表单设计器的所有组件名称和类 所选组件将标有 专家应出现在菜单
  • 在 AWS Sagemaker 上安装 graphviz

    我在使用 Python3 的 Jupyter 笔记本上尝试使用如下代码绘制一棵树 import xgboost as xgb from xgboost import plot tree plot tree model num trees 4
  • 如何以编程方式确定 ndb 属性是否为多值

    我正在将应用程序从 Datastore 转换为 ndb 并且在 xml 导入例程中遇到问题 问题是我无法以编程方式确定 ndb model 类的属性是否是多值属性 我怀疑这是由于缺乏基本的 Python 技能 因为到目前为止我编写的代码显示
  • 将 Windows 7 手机的联系人列表集成到应用程序中

    如何获取 Windows 7 手机的联系人列表以在 win7 手机应用程序中使用 对于早期版本的 Windows Phone 7 SDK 只能使用选择器检索电话号码或电子邮件地址以及其他一些信息 现在 使用 7 1 Mango SDK 可以
  • 如何自动将版本号插入AssemblyName

    我试图建立在这个问题的基础上 从 MSBuild 中的文件读取单个值 我的目标是有一个位置来放置多个项目中使用的版本号 并且我还希望其中一个项目的 DLL 文件名中包含版本号的一部分 根据上面的问题 我已经得到了第一部分 但我在第二部分上遇
  • Spring MVC,从请求生成表单支持对象?

    我正在使用 Spring MVC 2 5 并且尝试从 GET 请求加载 JSTL 表单对象 我有 Hibernate POJO 作为我的支持对象 请求中有一个页面指向另一个带有类 id 行主键 的页面 该请求类似于 newpage htm
  • 通过 R 在 SQL 查询中粘贴值

    我有以下包含 AxiomaID 的数据框 x lt c 0123 234 2348 345 3454 并尝试在 R 中运行以下 SQL 查询 SQL6 lt data frame sqlQuery myConn SELECT top 10
  • 创建 bean 'entityManagerFactory' 时出错,嵌套 HibernateException:无法获取默认的 Bean 验证工厂

    关于这个主题已经提出了很多问题 但似乎没有一个能解决我的问题 我尝试使用 Maven Spring Hibernate 和 JPA 以及 Mysql 5 5 构建一个示例项目 这是一个测试桌面应用程序 我不知道 我哪里错了 mvn clea
  • 在php中将数组转换为png [关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 我想知道如何将颜色数组转换为 png 图像文件 该数组称为 pixels 请帮我 im
  • PhoneGap Android Plugin - 关闭插件 Activity

    我编写了一个 PhoneGap Android 插件 并在那里打开了第二个活动 cordova getActivity runOnUiThread new Runnable Override public void run Context