ブラウザ、メール、bbmで特定のURLが要求されたときに起動するアプリケーションを登録することはできますか?
たとえば、ユーザーがリンクflycraft:// replay / 123をクリックすると、アプリが起動され、URIが渡されるようにしたいと思います。
ブラウザ、メール、bbmで特定のURLが要求されたときに起動するアプリケーションを登録することはできますか?
たとえば、ユーザーがリンクflycraft:// replay / 123をクリックすると、アプリが起動され、URIが渡されるようにしたいと思います。
現在、これは不可能です。
これには2つの部分があります。
flycraft://
、ブラウザがこれらのリンクを呼び出し可能として扱うことを認識できるようにします。flycraft://
アプリが読み込まれるように、呼び出しを処理するようにアプリを登録します。残念ながら、現在、最初の部分は不可能です。計画はありますが、現段階では具体的なものはありません。
はい!これは、BB10呼び出しフレームワークを使用して実行できます。かなりの詳細がappurl.orgで提供されています。要するに:
<property var="uris" value="flycraft:"> </property>
invokeManager
アプリにオブジェクトを追加し、そのシグナルを、そのリクエストを処理できるコードのスロットにmain
接続します。invoked
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でこれを行う方法はありません。