在浏览器,电子邮件或bbm中请求特定URL时,是否可以注册要启动的应用程序?
例如,我希望当用户点击链接flycraft:// replay / 123我的应用程序启动并传递URI时。
答案 0 :(得分:1)
是的!您可以使用BB10 invocation framework执行此操作。 appurl.org提供了大量详细信息。简而言之:
<property var="uris" value="flycraft:"> </property>
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上无法做到这一点。