Запуск приложения BB10, нажав на ссылку в браузере или по электронной почте

Можно ли зарегистрировать приложение для запуска при запросе определенного URL-адреса в браузере, электронной почте или bbm?

Например, я хотел бы, чтобы пользователь нажимал на ссылку flycraft://replay/123, чтобы мое приложение запускалось и передавало URI.

3 ответа

Решение

Чтобы сделать это на 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.

Это невозможно в данный момент.

Есть 2 части к этому:

  1. Регистрация схемы URI в браузере. например flycraft:// так что браузер знает, как обращаться с этими ссылками как с вызовами.
  2. Регистрация вашего приложения для обработки flycraft:// вызов, чтобы ваши приложения загружались.

К сожалению, первая часть в настоящее время невозможна. На этом этапе есть планы, но ничего конкретного.

Да! Вы можете сделать это, используя среду вызовов BB10. Достаточное количество деталей предоставлено на appurl.org. Короче:

  1. Добавьте цель вызова в ваш файл bar-descriptor.xml, если у вас ее еще нет.
  2. Добавьте целевой фильтр к своей цели с помощью действий "bb.action.VIEW" и "bb.action.OPEN" и тега <property var="uris" value="flycraft:"> </property>
  3. Добавить invokeManager возражать против вашего приложения mainи подключите его invoked сигнал в какой-то слот вашего кода, который может обработать этот запрос.
Другие вопросы по тегам