Xamarin.Formsで作成した、Siriショートカットボタンの最小実装サンプルです。NSUserActivityTypesを使用しました。
コミットを見ればおおよその実装はわかると思います。
- Info.plist
- ShortcutAction.cs
- SiriShortcutPageRenderer.cs
- 少し強引なこと をしています。MAUIだとどうなるのでしょうか。
1つ目は コミット しているのと同じ設定で、画面の真ん中にSiriショートカットボタンを配置しています。
siriButton.CenterXAnchor.ConstraintEqualTo(this.View.CenterXAnchor).Active = true;
siriButton.CenterYAnchor.ConstraintEqualTo(this.View.CenterYAnchor).Active = true;
2つ目以降は別で試したものでコミットしていません。 2つ目は下付きです。ちょっと不格好になるのでマージンが必要かもしれません。
siriButton.CenterXAnchor.ConstraintEqualTo(this.View.CenterXAnchor).Active = true;
siriButton.BottomAnchor.ConstraintEqualTo(this.View.BottomAnchor).Active = true;
マージン
siriButton.CenterXAnchor.ConstraintEqualTo(this.View.CenterXAnchor).Active = true;
siriButton.BottomAnchor.ConstraintEqualTo(this.View.BottomAnchor, -20).Active = true;
3つ目は上付きです。文字とSiriショートカットボタンの配置が重なってしまいました。
siriButton.CenterXAnchor.ConstraintEqualTo(this.View.CenterXAnchor).Active = true;
siriButton.TopAnchor.ConstraintEqualTo(this.View.TopAnchor).Active = true;
このように配置位置はiOS側での調整となるため、Xamlの記載に気を付けてください。 見栄えが悪かったり、文字とSiriショートカットボタンの配置が重なるかもしれません。
Siriショートカットはユーザの利用に応じて設定されるべきです。Siriショートカットボタンの利用目的の明記と、その目的通りにアプリを動かすように実装してください。