В настоящее время я использую url_launcher. «режим: LaunchMode.externalApplication», и если я нажму на ссылку, я хочу показать приложение Amazon.
Но я не могу этого сделать.
Вероятно, потому что я использую ссылки Amazon Associates.
Я не мог решить проблему.
код
Future _launchUniversalLinkIos(int index) async {
final url = reversedList[index].acf!.link.toString();
try {
await launchUrl(
Uri.parse(url),
);
} catch (e) {
debugPrint('Laucnh url Error: $e');
}
}
PageView(
controller: _pageController,
onPageChanged: (page) {
setState(() {
selectedPage = page;
});
},
children: pages.map((image) {
return GestureDetector(
onTap: () =>
// final index = pages.indexOf(image);
_launchUniversalLinkIos(
pages.indexOf(image),
),
child: AspectRatio(
aspectRatio: 4 / 3,
child: Image.network(
image,
fit: BoxFit.cover,
),
),
);
}).toList(),
),
распечатать результат флаттер: https://amzn.to/xxxxxxxx
инфо.plist
<key>LSApplicationQueriesSchemes</key>
<array>
<string>itms-beta</string>
<string>itms</string>
</array>
Я попробовал amzn и com.amazon.mobile.shopping. но я не могу открыть приложение амазон
Спасибо за ваш комментарий. Моя ссылка amzn.to/xxxx.
просто скинь свою ссылку на мою ссылку
Я посмотрел ваш код. Я пытаюсь понять, как его изменить. Я изменил свой код. Добавил код звонящего.
ваш обновленный код работает?
нет, возможно мой код неверный
Я проверяю ваш URL-адрес, он неверен, если я нахожу вашу ссылку, она дает это amazon.com , а ваш URL-адрес amzn.to/xxxxxxxx и дает нулевой ответ, например component name for https://amzn.to/xxxxxxxx is null
измените свой URL-адрес
Вы знаете, почему этот код не работает должным образом?
хочу ответ здесь
Просто мин, дай мне немного времени
Давайте продолжим обсуждение в чате.
пожалуйста, проверяйте сообщения в чатах
Попробуйте нижеприведенный код, ваша проблема была решена, просто удалите блокировку if else из функции:
Виджет:
GestureDetector(
child: Image.network(
'https://upload.wikimedia.org/wikipedia/commons/d/de/Amazon_icon.png',
width: 70,
height: 70,
),
onTap: () => amazon(),
),
Функция:
amazon() async {
const url = 'https://amzn.to/xxxxxxxx'; // or add your URL here
await launchUrl(Uri.parse(url));
}
Добавьте приведенный ниже код в свой файл Info.plist
[myproject/ios/Runner/Info.plist
]
<key>LSApplicationQueriesSchemes</key>
<array>
<string>http</string>
<string>https</string>
</array>
Результат->
мой код использует «вернуть GestureDetector ()». Поэтому я не могу использовать Inkwell
@Tdayo Я обновил свой ответ, пожалуйста, проверьте, можете ли вы использовать GestureDetector
вместо InkWell
Извините, я забыл, что он используется в виджете PageView. я исправил код
Если ваша проблема была решена моим решением/ответом, пожалуйста, проголосуйте и примите его.
конечно, но пока не могу
Мне нужен «окончательный индекс = pages.indexOf (изображение);» Потому что это есть на карусели
@Tdayo Я не могу понять, что вы хотите в соответствии с вашим вопросом выше, у меня есть правильный ответ
Я изменил код. Я хочу проверить. но он открыл сафари.
@Tdayo выдает такую ошибку Insecure HTTP is not allowed by platform in Flutter IOS
? или проверьте мой обновленный ответ
Я могу открыть ссылку, но я не могу открыть приложение Amazon. Я добавил info.plist . но такой же.
андроидом не пользуюсь. Это айфон.
@Tdayo мой ответ работает на обоих
отправьте мой ответ здесь надеюсь, что он вам поможет