在 BlackBerry Messenger 中使用调用框架
在 BlackBerry Messenger 中使用调用框架
我之前发布的博客文章(如下所列)涵盖了 BlackBerry® Messenger (BBM™) 社交平台在 API 级别提供的功能
现在让我们看看如何使用调用框架来调用 BlackBerry Messenger,并将来自 BBM 的卡片引入您的应用程序。如果您对“卡片”这个术语不熟悉,请允许我解释一下。可以将卡片视为另一个应用程序的屏幕,该屏幕显示在您的应用程序中,并且就像您自己的应用程序中的屏幕一样运行。卡片成为构成 BlackBerry® 10 的流程的一部分,从而实现无缝的用户体验,避免用户必须切换应用程序。
本博客文章中使用的代码示例是 QML,但请记住,您可以从 C++、BlackBerry® WebWorks™ 和 Adobe® AIR® 中使用这些调用功能。
下面是一个屏幕截图,显示了您可以在应用程序菜单中使用的、用于调用 BBM 的操作。您在下面看到的“BBM 调用”文本代表您的应用程序屏幕(实际上显示的是 BBM 调用示例)。每个 BBM 卡片都将显示在其上方。用户可以随时返回查看您的应用程序屏幕或完全关闭卡片,从而返回到您的应用程序屏幕。
让我们分别看一下这些卡片,了解它们是如何被调用的,以及调用后它们的样子。
启动 BBM 聊天
InvokeActionItem { title: "Start BBM Chat" query { invokeActionId: "bb.action.BBMCHAT" uri: "pin:2100000a" } }
上面的代码展示了如何启动 BBM 聊天。聊天窗口将作为卡片流入您的应用程序。在上面的示例中,使用了单个 PIN。如果您省略 URI 参数,系统将提示用户从其 BBM 联系人列表中选择一个联系人以包含在聊天会话中。如果与该联系人的聊天会话已存在,它将显示并填充之前的消息。
设置 BBM 头像图片
InvokeActionItem { title: "Set BBM Avatar Pic" query { invokeTargetId: "sys.bbm.imagehandler" invokeActionId: "bb.action.SET" uri: "file:///path/to/the/file.png" } }
您可以提示用户将其 BBM 头像图片更改为您应用程序指定的图片。这将触发一张卡片,该卡片预览图像并允许用户裁剪或缩放。用户对其选择感到满意后,他们可以单击“保存”以更新其 BBM 头像。
邀请加入 BlackBerry Messenger
InvokeActionItem { title: "Invite to BBM" query { invokeActionId: "bb.action.INVITEBBM" uri: "pin:2100000A" } }
如果您知道尚未成为 BlackBerry Messenger 用户的联系人的 BlackBerry PIN,您可以使用如上所示的BlackBerry.action.INVITEBBM
调用操作邀请他们加入 BBM。然后,用户可以在发送消息之前向其联系人编写个性化消息。
通过 BBM 分享文本
InvokeActionItem { title: "Share Text Over BBM" query { mimeType: "text/plain" invokeTargetId: "sys.bbm.sharehandler" invokeActionId: "bb.action.SHARE" data: "This is some text to share." } }
通过 BBM 分享文本使您的应用程序能够启动聊天会话,并在消息输入字段中填充数据部分中指定的文本。就像启动上面的 BBM 聊天会话一样,如果之前的聊天会话存在,则将显示消息历史记录。
通过 BBM 分享图像
InvokeActionItem { title: "Share Image Over BBM" query { invokeTargetId: "sys.bbm.sharehandler" invokeActionId: "bb.action.SHARE" uri: "file:///path/to/image/file.png" } }
通过 BBM 分享图像的工作方式与分享文本几乎相同,只不过您指定一个指向图像文件的 URI。它会弹出一个聊天卡片,其中包含一条已编写并准备好发送的消息,并附带该图像。
总结
为简单起见,上面的 QML 代码示例使用了硬编码的数据和 URI 值。但是,在实际应用程序中,您需要使用基于应用程序中变量的动态值。您可以使用 onTriggered
方法来做到这一点。这是一个用例示例
InvokeActionItem { title: "Share Text Over BBM" query { mimeType: "text/plain" invokeTargetId: "sys.bbm.sharehandler" invokeActionId: "bb.action.SHARE" data: "This is some text to share." } onTriggered: { data = "Some new text" } }
调用后,上面的示例将在聊天会话中填充“Some new text”。在实际应用程序中,您会将“Some new text”字符串更改为指向应用程序中的变量或控件。
到此为止,是目前可用于 BlackBerry 10 的 BBM 卡片列表。正如您所看到的,只需使用几行代码,您就可以将一些强大的功能(如 BBM 聊天)集成到您的应用程序中。尽情调用吧!