В моем приложении для электронной коммерции я хочу разрешить пользователям делиться продуктами со своими друзьями или в социальных сетях. когда щелкают по ссылке общего доступа, я хочу, чтобы пользователь сразу переходил на страницу сведений о продукте и добавлял в корзину, если он хочет купить продукт. Но в моем случае я всегда оказываюсь на главной странице.
Вот что я уже сделал, ребята, как мне указать путь, по которому ссылка должна перейти на
class ShareProvider with ChangeNotifier{
void createAndShare({
@required dynamic imageUrl,
@required String productCategory,
@required String productDescription,
@required int productId,
@required String productName,
@required int productPrice,
}) async {
final DynamicLinkParameters parameters = DynamicLinkParameters(
uriPrefix: 'https://unishop.page.link',
link: Uri.https('ushop.com','/',
{
"imageUrl":imageUrl.toString(),
"productCategory":productCategory,
"productDescription":productDescription,
"productId":productId.toString(),
"productName": productName,
"productPrice":productPrice.toString(),
}),
androidParameters: AndroidParameters(
packageName: 'com.gh.ushop',
),
iosParameters: IosParameters(
bundleId: 'com.gh.ushop',
),
socialMetaTagParameters: SocialMetaTagParameters(
title: productName,
description: productDescription,
// imageUrl: ,
),
);
final ShortDynamicLink shortDynamicLink = await parameters.buildShortLink();
final Uri shortUrl = shortDynamicLink.shortUrl;
print(shortUrl);
Share.share('$shortUrl');
}
Future<void> retrieveDynamicLink() async {
FirebaseDynamicLinks.instance.onLink(onSuccess: (data) async {
final Uri deepLink = data?.link;
print("DeepLink is: ${data?.link}");
if (deepLink != null) {
final queryParams = deepLink.queryParameters;
if(queryParams.length > 0) {
String productCategory,imageUrl,productDescription,productName;
int productId,productPrice ;
productCategory= queryParams["productCategory"];
imageUrl= queryParams["imageUrl"];
productDescription= queryParams["productDescription"];
productName= queryParams["productName"];
productId= queryParams["productId"] as int;
productPrice = queryParams["productPrice"] as int;
print(productDescription);
print(productName);
print(productPrice);
print(productCategory);
print(imageUrl);
print(productId);
deepLink.toString();
print(deepLink.toString());
}
}});
}
}
кнопка, чтобы поделиться
FlatButton(
child: new Image.asset(
"share",
height: 20,
),
onPressed: () {
Provider.of<ShareProvider>(context, listen: false).createAndShare(
imageUrl: widget.product.url,
productCategory: widget.product.category,
productDescription: widget.product.description,
productId: widget.product.id,
productName: widget.product.title,
productPrice: widget.product.price,
);
},
),
Должен ли я использовать код ниже ??? как мне это сделать тогда? Я, кажется, не понимаю, DeepLink.path часть кода
if (deepLink != null) {
Navigator.pushNamed(context, deepLink.path);
}