[英]Firebase dynamic link with dynamic parameters?
我正在嘗試向我的動態鏈接添加一個動態參數。 例如,如果我有一個鏈接為https://xyz.page.link/promo?id=1
添加到 firebase 控制台。 我希望 id=1 應該是動態的,即使用相同的鏈接,我可以將其傳遞給不同的 id,而不是為每個 id 創建鏈接並每次檢查代碼以從下面提到的 getRoute() 重定向到 Flutter 屏幕。
任何人都可以提出一些方法來實現這一目標嗎?
// Flutter imports:
import 'package:flutter/material.dart';
// Package imports:
import 'package:firebase_dynamic_links/firebase_dynamic_links.dart';
// Project imports:
import 'package:xyz/src/ui/home_screen.dart';
import 'package:xyz/src/ui/promo_screen.dart';
class DynamicLinksService {
static Future<Widget> initDynamicLinks() async {
final PendingDynamicLinkData? data = await FirebaseDynamicLinks.instance.getInitialLink();
if (data != null){
return getRoute(data.link);
}
FirebaseDynamicLinks.instance.onLink(
onSuccess: (PendingDynamicLinkData? dynamicLink) async {
return getRoute(dynamicLink!.link);
}, onError: (OnLinkErrorException e) async {
print('onLinkError');
return e.message;
});
return HomeScreen();
}
static Widget getRoute(deepLink){
if (deepLink.toString().isEmpty) {
return HomeScreen();
}
if (deepLink.path == "/promo") {
final id = deepLink.queryParameters["id"];
if (id!= null) {
return PromoScreen(id: id);
}
}
return HomeScreen();
}
}
謝謝
Ajinkya Taranekar
我可以與您分享我用來創建帶參數的動態鏈接的代碼:
class DynamicLinksService {
static Future<Uri> getGroupDynamicLink(
BuildContext context, String id) async {
final DynamicLinkParameters parameters = DynamicLinkParameters(
uriPrefix: 'https://my_page.page.link',
link: Uri.parse(
'https://my_page.page.link/add_group/?id=${id}'),
dynamicLinkParametersOptions: DynamicLinkParametersOptions(
shortDynamicLinkPathLength: ShortDynamicLinkPathLength.unguessable),
androidParameters: AndroidParameters(
packageName: 'com.my_page',
minimumVersion: 0,
),
iosParameters: IosParameters(
bundleId: 'com.my_page',
minimumVersion: '0',
appStoreId: '122343564',
),
socialMetaTagParameters: SocialMetaTagParameters(
title: AppLocalization.of(context).getMessage('join_info_group'),
description: group.title,
imageUrl: Uri.parse(group.image)),
);
final link = await parameters.buildUrl();
final ShortDynamicLink shortenedLink =
await DynamicLinkParameters.shortenUrl(
link,
DynamicLinkParametersOptions(
shortDynamicLinkPathLength: ShortDynamicLinkPathLength.unguessable),
);
final Uri dynamicUrl = shortenedLink.shortUrl;
return dynamicUrl;
}
}
只需將值更改為您的項目值和數據。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.