注意
Windowsでのアクション指定は、トースト通知のみサポートされているため、タイル通知、バッジ通知でのアクション指定はできません。
アクション | フォーマット | 備考 |
---|---|---|
自アプリケーション起動 |
Androidの場合、action値に半角スペースまたは、指定したカスタムURLスキームに対応した連携アプリが存在しない場合に自アプリケーションが起動します。連携アプリが存在しない場合の規定動作については、・連携アプリが存在しない場合の既定動作についてを参照してください。 iOS、Windowsの場合、action指定の有無に関係なく自アプリケーションが起動します。 |
|
メール送信画面起動 | action="mailto:TOアドレス?subject=件名&body=本文&cc=CCアドレス&bcc=BCCアドレス" | mailtoスキーマをサポートしているメールアプリだけ起動可能。 |
ブラウザ起動 | action="http(https):から始まるサイトのURL" | |
連携アプリ起動 | 各連携アプリに依存します。 連携アプリを起動するには、カスタムURLスキームを利用します。また、URLにクエリ文字列を指定することにより、パラメータの受け渡しも可能です。 連携アプリが存在しない場合の規定動作については、・連携アプリが存在しない場合の既定動作について、連携アプリ側で必要となる設定及び、URL・クエリ文字列の取得については、・連携アプリ側で必要となる設定及び、URL・クエリ文字列取得についてを参照してください。 |
外部からの起動を許容している他のアプリケーション |
iOS8からは、カテゴリを指定して、通知ダイアログに以下に示す"action1"、"action2"のような選択肢を設けることができます。
OS | 動作 |
---|---|
Android | 自アプリケーションが起動します。 |
iOS | 自アプリケーションが起動します。 |
Windows | 「ストアでアプリを探す」のダイアログが表示されます。 |
<intent-filter> <action android:name="任意" /> <category android:name="android.intent.category.DEFAULT" /> <data android:scheme="fjp" android:host="sample" /> </intent-filter>
URL・クエリ文字列を受け取る場合は、アクションから起動するActivityに以下のような記述を追加します。(以下の例では、受け取るURLを「fjp://sample?param1=abc」としています。)
Intent intent = this.getIntent(); // fjp://sample?param1=abcを取得 Uri uri = intent.getData(); // abcを取得 String param1 = intent.getStringExtra("param1");
注意
定義したURLスキームがAppleが提供するアプリケーションにも定義されている場合、Appleのアプリケーションが優先して起動されます。また、Apple以外のアプリケーションに同一のURLスキームが定義されている場合、どちらが起動されるかは保証されないため、必ず固有のURLスキームを指定するようにしてください。
-(BOOL)application:(UIApplication*)application openURL:(NSURL*)url sourceApplication:(NSString*)sourceApplication annotation:(id)annotation { // URLを文字列で取得 NSString *strUrl = [url absoluteString]; // クエリ文字列取得 NSString *query = [url query]; return YES; }
注意
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString *,id> *)options { // URLを文字列で取得 NSString *strUrl = [url absoluteString]; // クエリ文字列取得 NSString *query = [url query]; return YES; }
カスタムURLスキームの定義をします。Package.appxmanifestを開き、宣言タブの使用可能な宣言で「プロトコル」を追加し、プロパティの名前欄に任意のURLスキームを定義します。
URL・クエリ文字列を受け取る場合は、App.xaml.csを開き、以下のメソッドを実装します。
protected override void OnActivated(IActivatedEventArgs args) { // 起動処理の実装(実装内容はアプリケーションに依存するため省略) // アクションから起動された場合true if (args.Kind == ActivationKind.Protocol) { // URL・クエリ文字列を受け取る ProtocolActivatedEventArgs ar = args as ProtocolActivatedEventArgs; // URLの取得 Uri uri = ar.Uri; // クエリ文字列の取得 string query = uri.Query; } Window.Current.Activate(); }