Flutterでアプリ開発中に、URLリンクからアプリを起動して特定の処理を行わせたいことがあり、その方法を調べたのでここにメモしておきます。
Deep Linkingというらしい
URLスキームを使ってアプリを起動させる仕組みをDeep Linkingと言うそうです。(XcodeではCustom URL Schemeと言います)
Flutterで開発しているアプリでDeepLinkingを使用する場合はiOSとAndroidのそれぞれに設定をする必要があります。
Androidの設定
AndroidManifest.xml に以下を追記します。
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="お好みの文字列"/>
</intent-filter>
iOSの設定
info.plistに以下を追記します。
<key>FlutterDeepLinkingEnabled</key>
<true/>
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleURLName</key>
<string>アプリのURL Name</string>
<key>CFBundleURLSchemes</key>
<array>
<string>お好みの文字列</string>
</array>
</dict>
</array>
とりあえずこれで動くはず!
参考:https://docs.flutter.dev/development/ui/navigation/deep-linking
コメント