通过单击浏览器或电子邮件中的链接启动BB10应用程序

时间:2013-01-17 21:00:29

标签: native blackberry-10 playbook

在浏览器,电子邮件或bbm中请求特定URL时,是否可以注册要启动的应用程序?

例如,我希望当用户点击链接flycraft:// replay / 123我的应用程序启动并传递URI时。

2 个答案:

答案 0 :(得分:1)

是的!您可以使用BB10 invocation framework执行此操作。 appurl.org提供了大量详细信息。简而言之:

  1. 在bar-descriptor.xml文件中添加一个调用目标,如果还没有。
  2. 使用操作“bb.action.VIEW”和“bb.action.OPEN”以及标记<property var="uris" value="flycraft:"> </property>
  3. 向目标添加目标过滤器
  4. invokeManager对象添加到您应用的main,并将其invoked信号连接到您的代码中可以处理该请求的某个插槽。

答案 1 :(得分:1)

在BlackBerry 10上执行此操作的方法是在条形图描述符文件中添加以下代码:

<invoke-target id="eu.nlogn.flycraftplaybook.replayview">
<invoke-target-type>application</invoke-target-type>
    <filter>
        <action>bb.action.VIEW</action>
        <mime-type>*</mime-type>
        <property value="flycraft://" var="uris" />
    </filter>
</invoke-target>

然后你应该听NAVIGATOR_INVOKE_TARGET事件并像这样处理它:

const navigator_invoke_invocation_t *invoke = navigator_invoke_event_get_invocation(event);

if (invoke) {
    // retrieve invocation action
    const char *action = navigator_invoke_invocation_get_action(invoke); 
const char *uri = navigator_invoke_invocation_get_uri(invoke);  

if (action && uri) {
        // handle the uri you got
    }
} else {
    fprintf(stderr, "Error retrieving invocation: %s\n", navigator_event_get_err(event));                               
}

不幸的是,在Playbook上无法做到这一点。