首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >BBOS (pre BB10)通过意图发布应用程序(如Android)

BBOS (pre BB10)通过意图发布应用程序(如Android)
EN

Stack Overflow用户
提问于 2013-04-09 14:31:07
回答 2查看 394关注 0票数 0

我想知道我是否可以在BB操作系统(4-7)中开发一个与Android/iOs功能类似的应用程序;

  • 我将能够注册这个应用程序来监听特定的URL。
  • 我可以通过URL启动这个应用程序。
  • 我可以解析来自URL的数据并在应用程序中使用。

例如,在Android中,我可以使用像这样的意图过滤器

代码语言:javascript
运行
复制
<intent-filter>
    <action android:name="android.intent.action.VIEW"></action>
      <category android:name="android.intent.category.DEFAULT"></category>
      <category android:name="android.intent.category.BROWSABLE"></category>
      <data android:scheme="http"
          android:host="myapp.com"
          android:pathPrefix="/launchapp/" />

</intent-filter>

在读取url时启动该应用程序,如

然后,我可以在启动章节/之后解析这两个数字,并在应用程序中使用它们。

有经验的BB操作系统知道这是可能的吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-09 19:16:40

我不知道有记录的侦听器拦截打开的URL。但存在GlobalEvent机制。在or 10操作系统上做的几乎每一步都会触发一个或多个全球性事件。其中有些被记录下来,有些则没有。

有文档化的GUID列表:http://www.blackberry.com/developers/docs/7.0.0api/index-files/index-7.html (查找G字母,向下滚动查找GUID_xxxx常量)。

要捕获无文档的GUID,实施是一个使用GlobalEventListener的后台应用程序。然后在浏览器中打开一个页面,并记录所有伴随guids到eventOccurred调用的全局事件guids和对象。您可以知道,哪些全局事件guids与url打开事件有关。它将有助于创建URL拦截机制。这部分应该是一个本机应用程序(用Java编写)。

可以通过url启动应用程序,但应该是WebWorks应用程序。不是本地人。检查此链接:http://supportforums.blackberry.com/t5/Web-and-WebWorks-Development/Launch-BlackBerry-WebWorks-app-via-URL-with-parameters/td-p/1674663

当您的webworks应用程序完成了它的部分工作,它可以fire GlobalEvent和您的本地应用程序将等待它拦截并进一步工作。

票数 2
EN

Stack Overflow用户

发布于 2013-04-11 20:14:28

在BBOS上有一些方法可以做到这一点,具体取决于您到底想要什么。

  1. 使用net.rim.device.api.browser.plugin API创建浏览器插件。在这里,您创建一个BrowserContentProvider并将其附加到BB浏览器,以处理特定的mime类型。此mime类型必须是本机浏览器(例如x-vnd-whatever/myapplauncher)未处理的唯一类型。当浏览器访问您的url (比如http://myapp.com/launchapp/233 )时,提供一个编号为233和注册的mime类型的文件。浏览器将下载该文件,查看其mime类型,然后将文件内容传递给您的插件进行处理。你的插件将读取应用程序id - 233,然后用它做任何你想做的事情。BlackBerry应用程序世界使用此方法进行允许开发人员在应用程序世界中从url启动应用程序。
  2. 创建一个HttpFilter。使用它,您可以通过代码传递到给定域的连接。在这里,您将注册域myapp.com的筛选器,每当有人试图访问任何myapp.com时,浏览器将调用您的过滤器来处理请求。同样,BlackBerry应用程序世界这样做是为了访问http://appworld.blackberry.com域。示例中有一个HttpFilterDemo来帮助您
  3. 使用StringPattern API。几乎所有本机文本字段都支持它。因此,如果有一个文本字段所写的文本与特定的模式相匹配,它将成为下划线,单击它将在菜单中显示您的自定义操作。示例中有一个StringPatternDemo来帮助您
  4. 如果您的应用程序在app中,并且您只想启动它,请使用URL http://appworld.blackberry.com/webstore/content/xxxx,其中xxxx是应用程序的内容id。

此外,也没有用Global来尝试任何事情。自OS4.5以来,全球事件广播机制被划分为只将系统事件传递给系统应用程序,而不是传递给它们的派对应用程序,反之亦然。

希望这能有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15904738

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档