PhoneGap/Cordova 日历集成 (Android)

2023-12-28

我正在使用 PhoneGap(又名 Cordova)构建 Android 应用程序,但在日历集成工作方面遇到问题。免责声明:我对 Android 和 PhoneGap 都是菜鸟,请耐心等待。

我想做的就是向用户的日历添加一个事件。下列的本教程 http://www.adobe.com/devnet/html5/articles/extending-phonegap-with-native-plugins-for-android.html,我创建了一个尝试启动日历意图的插件。代码如下所示:

public class CalendarPlugin extends Plugin {
public static final String NATIVE_ACTION_STRING="addToCalendar"; 
public static final String SUCCESS_PARAMETER="success"; 

@Override
public PluginResult execute(String action, JSONArray data, String callbackId) {
    if (NATIVE_ACTION_STRING.equals(action)) { 
        Calendar beginTime = Calendar.getInstance();
        beginTime.set(2012, 6, 19, 7, 30);
        Calendar endTime = Calendar.getInstance();
        endTime.set(2012, 6, 19, 8, 30);

        Intent calIntent = new Intent((Context) this.ctx, CalendarPlugin.class)
            .setAction(Intent.ACTION_INSERT)
            .putExtra(Events.TITLE, "A new event")
            .putExtra(CalendarContract.EXTRA_EVENT_ALL_DAY, true)
            .putExtra(CalendarContract.EXTRA_EVENT_BEGIN_TIME, beginTime.getTimeInMillis())
            .putExtra(CalendarContract.EXTRA_EVENT_END_TIME, endTime.getTimeInMillis());

        this.ctx.startActivity(calIntent);
        return new PluginResult(PluginResult.Status.OK, "Smashing success");
    }

return new PluginResult(PluginResult.Status.ERROR, "Didn't work bro");
}
}

调用此插件的 Javascript 代码是标准的:

var CalendarPlugin = { 
    callNativeFunction: function (success, fail, resultType) { 
        if (cordova) {
            return cordova.exec( success, fail, 
                "org.myorg.appname.CalendarPlugin", 
                "addToCalendar", [resultType]);
        }
        else {
            alert("Calendar function is not available here.");
        }
    } 
};

Android 代码正在被调用(使用断点确认)。但发送回 Javascript 代码的结果是一个错误:

无法找到显式活动类 {org.myorg.appname/org.myorg.appname.CalendarPlugin};您是否在 AndroidManifest.xml 中声明了此活动?

本教程中没有提到添加到 AndroidManifest.xml,这让我相信我遗漏了一些东西(另外,日历插件代码调用成功了,怎么会出现这样的错误日历插件找不到类?)。如果我确实需要添加日历插件到清单,我该怎么做?


引用的教程没有涵盖意图。您将数据发送到的意图是您自己的 CalendarPlugIn 类,这不是您想要的,因为它不处理该意图。

See http://developer.android.com/guide/topics/intents/intents-filters.html http://developer.android.com/guide/topics/intents/intents-filters.html关于意图。

另外,如果你搜索一下,你会发现在 ICS 之前,甚至没有一种方法可以在不使用网络服务的情况下将内容正式添加到 Google 日历。有很多非官方的方法可以做到这一点,但会受到 Google 或 ODM 本身的突发奇想的影响。

Updated:

您应该能够通过 Phonegap 使用意图(通过插件)。我添加评论只是为了指出,如果您打算在应用程序中集成日历,并且想要支持大多数 Android 设备,则可能需要做一些研究。如果您有兴趣在 ICS 中添加日历事件,请查看:http://developer.android.com/reference/android/provider/CalendarContract.html http://developer.android.com/reference/android/provider/CalendarContract.html

欧普的编辑

我只需要修复Intent构造函数,这按预期工作:

Uri uri = Uri.parse("content://com.android.calendar/events");
Intent calIntent = new Intent("android.intent.action.INSERT", uri)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PhoneGap/Cordova 日历集成 (Android) 的相关文章

  • Twitter 登录说明

    我想在 Android 中创建一个 Twitter 应用程序 为此 我想创建一个登录页面并登录到 Twitter 为此 我们需要消费者密钥和消费者密钥 这是什么意思 要创建此登录页面 除了 Twitter 帐户之外 我们还需要其他任何东西吗
  • FTS3 在 ORMLite 中搜索?

    我对 FTS3 一无所知 除了http developer android com guide topics search search dialog html http developer android com guide topics
  • Android 上的 SVG 支持

    Android 支持 SVG 吗 有什么例子吗 最完整的答案是这样的 Android 2 x 默认浏览器本身不支持 SVG Android 3 默认浏览器支持 SVG 要将 SVG 支持添加到 2 x 版本的平台 您有两个基本选择 安装功能
  • 使用 ADB 命令获取 IMEI 号码 Android 12

    对于 11 之前的 Android 版本 我使用以下命令从我的设备获取 IMEI 号码 adb shell service call iphonesubinfo 4 cut c 52 66 tr d space or adb shell s
  • 从 React Native Js 代码调用 Android Native UI 组件方法

    我创建了一个 CustomView SignatureView java 它扩展了 LinearLayout 以捕获 Android Native 中的签名 并创建了SignatureCapturePackage java和Signatur
  • 如何解决 Firebase AuthUi 中无法找到显式活动?

    使用 firebase UI 时 我无法找到显式活动类 com firebase ui auth KickoffActivity protected void onCreate Bundle savedInstanceState super
  • Android 自定义布局 - onDraw() 永远不会被调用

    public class MainActivity extends Activity Override public void onCreate Bundle savedInstanceState super onCreate savedI
  • 如何为发布而不是调试创建密钥库?扑

    我按照使用此网站部署 flutter 的步骤进行操作https flutter io android release https flutter io android release 当我运行 flutter build apk 时出现此错
  • 如何在android中设置权限WRITE_SECURE_SETTINGS? [复制]

    这个问题在这里已经有答案了 我正在尝试启用 4 0 以上的辅助功能服务设置 但它显示异常 即 引起原因 java lang SecurityException 权限拒绝 写入安全设置需要 android permission WRITE S
  • AudioTrack、SoundPool 或 MediaPlayer,我应该使用哪个?

    如果我需要能够 播放多个音频文件 具有不同的持续时间 例如 5 到 30 秒 独立设置右 左声道的音量 应用声音效果 如混响 失真 那么 我应该使用哪个 API 另外 我在 AudioTrack API 上找不到太多文档 有谁知道在哪里可以
  • 如何在 Android 模块中使用 FirebaseAuth

    我正在开发一个聊天库 我想在其中显示登录用户的对话 制作该库的原因是我想将其集成到多个项目中 我现在面临的问题是FirebaseAuth表示用户尚未登录 FirebaseAuth getInstance mFirebaseApp getCu
  • Java 文件上传速度非常慢

    我构建了一个小型服务 它从 Android 设备接收图像并将其保存到 Amazon S3 存储桶中 代码非常简单 但是速度非常慢 事情是这样的 public synchronized static Response postCommentP
  • 画透明圆,外面填充

    我有一个地图视图 我想在其上画一个圆圈以聚焦于给定区域 但我希望圆圈倒转 也就是说 圆的内部不是被填充 而是透明的 其他所有部分都被填充 请参阅这张图片了解我的意思 http i imgur com zxIMZ png 上半部分显示了我可以
  • 在 React Native 中调试应用程序崩溃

    我是 React Native 新手 我正在尝试安装 React Native Facebook SDK 以便我可以使用我的应用程序进行 Facebook 登录 我按照此处列出的步骤操作 https tylermcginnis com in
  • 有关 ListView 自定义行布局项目上的 onClick() 事件的帮助

    我有一个 ListView 其行由我格式化 每行都有 ImageView 和 TextView 的混合 我还实现了自己的适配器 并且能够通过它绘制每一行 现在 我想要这样的东西 用户单击 ImageView 不是行上的其他任何位置 但只有此
  • 如何修改 Skobbler 注释而不重新添加它

    我必须修改 SKAnnotation 的图像 注释生成器代码 private SKAnnotation getAnnotationFromView int id int minZoomLvl View view SKAnnotation a
  • 模块中的类无法加载

    我正在开发一个 2D Unity android 游戏 其中我最近添加了 Firebase Beta SDK 但添加后FirebaseAnalytics unitypackage我面临的错误是 无法加载模块中的类 当我删除文件夹时Fireb
  • 如何在 Android 中使用 C# 生成的 RSA 公钥?

    我想在无法假定 HTTPS 可用的情况下确保 Android 应用程序和 C ASP NET 服务器之间的消息隐私 我想使用 RSA 来加密 Android 设备首次联系服务器时传输的对称密钥 RSA密钥对已在服务器上生成 私钥保存在服务器
  • Android 中循环事件的星期几和时间选择器

    我想创建一个控件 允许用户在我的 Android 活动中选择一周中的某一天 星期一 和一天中的某个时间 下午 1 00 找不到任何关于此的好帖子 好吧 我想我已经明白了 我只是不喜欢这个解决方案 因为我在一周中的某一天使用的微调器与时间选择
  • 在Android Studio gradle项目中使用NDK和STL

    我在将 stlport 链接到 Android Studio 中的 gradle 项目时遇到问题 使用 NDK 的 Eclipse Android 项目迁移到 Android Studio 该项目使用 STL 我有包含内容的 android

随机推荐

  • CloudKit错误处理-重试逻辑

    我想在我的应用程序中加入出色的 CloudKit 错误处理功能 就像 Apple 希望我们做的那样 我现在想保存并修改一条记录 这是我的基本保存逻辑 func addNewRecord managedObj NSManagedObject
  • requestIdleCallback 和 setImmediate 之间的区别?

    目前有 2 个不同的 API 旨在将任务分解为预定的回调函数 设置立即 https developer mozilla org en US docs Web API Window setImmediate 非标 请求空闲回调 https d
  • 第一次打开浏览器窗口/选项卡后执行 JavaScript 代码

    有没有一种方法可以在浏览器中的窗口或选项卡打开时仅执行一次 JavaScript 代码 然后在该窗口 选项卡的整个生命周期中不再执行 即使导航离开 一种使用方式window sessionStorage像这样 if window sessi
  • 如何对 url 中的视频进行加密并将加密视频保存到设备的 SD 卡

    在我的应用程序中 我必须使用许多视频文件 所有视频的总大小大约为 500 MB 因此 我必须在第一次安装和运行应用程序时决定我在后台下载视频 并在加密该视频后将其保存到设备的 SD 卡上 当使用视频时 我会解密该视频并使用它 我决定这样做是
  • 动态创建 C# 类或对象

    我有这个结构 public class FirstClass public List
  • 所有的 goroutine 都在睡觉——僵局! - - - - 错误

    我想编写三个并发的 go 例程 相互发送整数 现在 我的代码已正确编译 但是在第一次执行后 它给出错误 所有 goroutine 都在睡觉 死锁 我试图找到错误 但无法找到代码逻辑中的任何错误 任何人都可以帮助我找到代码中的错误吗 我的代码
  • 在python中将字符串转换为十六进制

    我有一个脚本调用一个函数 该函数采用十六进制数字作为参数 该参数需要 0x 前缀 数据源是数据库表 存储为字符串 因此返回 0x77 我正在寻找一种从数据库中获取字符串并将其用作带有 0x 前缀的十六进制形式的参数的方法 这有效 addr
  • withFilter 的值不是 Cats IO 中的成员以供理解

    我写了这段代码并且编译得很好 for list List Int lt Future List 1 2 3 yield list size res7 Future Int Future Success 3 但是如果我将此代码转换为 for
  • 在 Notepad++ 中每行末尾添加一个字符 )

    我想添加 字符 右括号 到所有行的末尾 I see CR是每行的结束符号 菜单 gt 视图 gt 显示符号 gt 显示行尾 我尝试更换 r with r在正则表达式模式下但它不起作用 我该怎么做呢 Use 在正则表达式模式下匹配行尾 用 来
  • Maven 中的 SSL 客户端证书

    我使用 maven jaxb22 plugin 生成类 以便我可以调用用 Net 编写的 Web 服务 通常它工作正常 但这次 我只能使用客户端证书通过 HTTPS 访问 WSDL 无法通过 HTTP 访问 我能够让它与 SoapUI 一起
  • 在 C++ 中将一个文件的内容复制到另一个文件

    我正在使用以下程序尝试将文件 src 的内容复制到 C 中的另一个文件 dest 简化的代码如下 include
  • 将文本基线与 CSS 中的按钮对齐

    I would like to achieve one of the two alignments represented on this image CSS3 is ok or even better if it makes things
  • 标准化编辑距离

    我有一个问题 我们可以通过将 e d 值除以两个字符串的长度来标准化编辑距离吗 我问这个问题是因为 如果我们比较两个长度不等的字符串 两个长度之间的差异也会被计算在内 例如 ed 有一个 有一个球 4 和 ed 有一个 有一个球是圆的 15
  • 设置/更新 aspxauth 和 asp.net_sessionid cookie 的过期时间

    我想知道是否有一种方法可以设置 NET 应用程序来设置和更新浏览器中 aspxauth 和 asp net sessionid cookie 的过期时间 据我所知 cookies 的过期日期类似于 1 1 0001 告诉浏览器保留它们直到浏
  • 所有屏幕设备的图像尺寸

    I have PSD 其分辨率为1080X1920 它包含一个Dot分辨率为的图像22X22 我已经裁剪了该图像并将其放入我的res folder 我的问题是 Android 如何知道该图像的用途1080X1920屏幕 它会打开更大的相同图
  • 如何在ES6模块中导入部分对象

    In the 反应文档 https facebook github io react docs pure render mixin html我找到了这种导入 PureRenderMixin 的方法 var PureRenderMixin r
  • Perl 中的 '`' 字符有什么作用?

    我使用 Perl 来读取文件的每一行 我使用命令行工具来调用服务 我注意到一些有趣的功能 但我不知道如何搜索 到变量 cmd我分配了调用该服务的命令 如果我参考 cmd稍后在代码中它会打印出命令行参数 但如果我将其称为 cmd 但是 它给出
  • Yosemite SSL:设置了 CA 证书,但禁用了证书验证

    自从安装 Yosemite 以来 我不断收到错误 SSL CA 证书集 但证书验证已禁用 终端中的每个 https url 都会出现这种情况 找不到如何解决这个问题 有什么建议吗 谢谢 坦率 对于其他来到这里试图弄清楚为什么他们在使用 Wo
  • 按值对 HashMap 数据进行排序

    我想在 Rust 中按值对 HashMap 数据进行排序 例如 在计算字符串中的字符频率时 我正在尝试做的 Python 等效项是 count for c in text count c count get c 0 1 sorted dat
  • PhoneGap/Cordova 日历集成 (Android)

    我正在使用 PhoneGap 又名 Cordova 构建 Android 应用程序 但在日历集成工作方面遇到问题 免责声明 我对 Android 和 PhoneGap 都是菜鸟 请耐心等待 我想做的就是向用户的日历添加一个事件 下列的本教程