Как подключить кошелек Phantom к приложению Flutter, используя глубокие ссылки?

Я делаю мобильное приложение флаттера, в котором я хочу подключить пользователя к кошельку Phantom, используя глубокую ссылку подключения, а затем установитьв качестве динамической ссылки Firebase для приложения, однако я не получаю ответа от кошелька Phantom в качестве параметров запроса. Любая помощь будет высоко оценена! Спасибо.

1 ответ

Установите пакеты uni_links и url_luncher.

добавить это намерение в androidManifest

        <intent-filter android:autoVerify="true">
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    <!-- Accepts URIs that begin with https://YOUR_HOST -->
    <data
      android:scheme="https"
      android:host="[YOUR_HOST]" />
  </intent-filter>

затем создайте queryParameter, например

       Map<String, dynamic> queryParameters = {
  "dapp_encryption_public_key":
      base58.encode(Uint8List.fromList(keypair.publicKey)),
  "cluster": "devnet",
  "app_url": "https://google.com",
  "redirect_link":
      "app://flutterdapp?handleQuery=onConnect}",
};

затем обедUrl

      final url =Uri(
  scheme: "https",
  host: "phantom.app",
  path: "/ul/v1/onConnect",
  queryParameters: queryParameters,
);

 launchUrl(
  url,
  mode: LaunchMode.externalNonBrowserApplication,
 );

и получать данные от фантома, как

      StreamSubscription _sub;

 Future<void> initUniLinks() async {
 // ... check initialLink

// Attach a listener to the stream
_sub = linkStream.listen((String? link) {
  // Parse the link and warn the user, if it is not correct
}, onError: (err) {
  // Handle exception by warning the user their action did not succeed
});

// NOTE: Don't forget to call _sub.cancel() in dispose()
 }

 // ...

надеюсь помочь вам

Другие вопросы по тегам