Flutter(플러터)/UI

Flutter Deep ( Dynamic ) Link ( 딥 링크, 다이나믹 링크 )

병홍 2022. 1. 6. 23:30

 Flutter에서 Deep Link를 사용하기 위해서는 하기의 uni_links 라이브러리를 사용 한다. 

https://pub.dev/packages/uni_links

 

uni_links | Flutter Package

Flutter plugin for accepting incoming links - App/Deep Links (Android), Universal Links and Custom URL schemes (iOS).

pub.dev

 

기본 설정 

1. Android ( AndroidMenifest.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:host=”flutter.deeplink.sample”	
		android:pathPrefix=”/”
		android:scheme=”https” />
</intent-filter>

2. iOS (Info.plist)

<?xml>
	<plist>
	<dict>
	<key>CFBundleURLTypes</key>
	<array>
      <dict>
      <key>CFBundleTypeRole</key>
          <string>Editor</string>
      <key>CFBundleURLName</key>
          <string>flutter.deeplink.sample</string>
      <key>CFBundleURLSchemes</key>
      <array>
      <string>https</string>
      </array>
      </dict>
	</array>
</dict>
</plist>

 

3. Deep Link를 사용하는 페이지에서 초기화

Future<String> initialLink() async {
  try {
  	final initialLink = await getInitialLink();
  	return initialLink;
  } on PlatformException catch (exception){
  	log(exception.message);
  }
}

String deepLinkURL = “”;

@override
void initState() {
  initialLink().then((value) => this.setState(() {
  	deepLinkURL = value;
  }));
  super.initState();
}


위와 같이 설정하면 flutter.deeplink.sample 로 들어오는 것은 설정된 페이지를 뜨게 해줍니다.