FlutterでURLスキームを使ってアプリ起動

Flutter

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

コメント

タイトルとURLをコピーしました