3 回答
TA贡献1783条经验 获得超4个赞
之前,当 Firebase 动态链接被强制加载到 WebView 中时,我在 Android 上遇到了类似的错误。就我而言,FDL 预计将由 Android 中的 Google Play 服务处理。但是由于 WebView 不知道如何处理它被迫显示的链接,WebView 返回“net::ERR_UNKNOWN_URL_SCHEME”错误。我不确定这是否与您的情况相同,因为我无法验证您尝试从“intent://kakaopay...”加载的链接
您可以尝试使用外部打开链接url_launcher
。使用 RegEx 过滤意图 URL 并检查 URL 是否可以在外部(应用程序外部)启动和处理。
var yourURL = "URL goes here";
// Check if URL contains "intent"
yourURL.contains(RegExp('^intent://.*\$')){
// Check if the URL can be launched
if (await canLaunch(yourURL)) {
await launch(yourURL);
} else {
print('Could not launch $yourURL');
}
}
此外,您使用的插件 ( web_view_plugin
) 似乎已过时,我无法在此处找到它https://pub.dev/packages?q=web_view_plugin。Flutter 有它的官方 WebView 插件 ( webview_flutter
) 已经发布,我建议检查它是否适合你的用例。
TA贡献1842条经验 获得超12个赞
这样做了:
_launchURL(url) async {
var link = "https://hiddenwords.page.link/deposit";
if (await canLaunch(link)) {
await launch(link,
forceWebView: false, enableJavaScript: true, forceSafariVC:
false);
} else {
throw 'Could not launch $link';
}
}
我手动将我希望它在 _launch 函数中打开的 url/链接放在 _launch 函数中...不要介意 _launch 括号中的 url。
我还将此添加到 Webview 小部件:
navigationDelegate: (NavigationRequest request) {
if (request.url.contains(RegExp('^intent://.*\$'))) {
_launchURL(request.url);
return NavigationDecision.prevent;
}
return NavigationDecision.navigate;
},
希望这对你有用。这个对我有用...
TA贡献1880条经验 获得超4个赞
1.使用你的APP在flutter中使用参数打开其他应用程序(在你的动态链接中);2.使用:url_launcher:^6.1.6;
首先,他们的应用程序必须支持动态链接;其次,他们为您提供交易的动态链接;这样我们就可以点击你APP中的动态链接,跳转到他们APP的指定页面了。
代码:
final Uri toLaunch = Uri(scheme: 'https', host: 'link.fitstop.com', path: 'link/qbvQ/');
//https://link.fitstop.com/link/qbvQ is dynamic link
Future<void>? _launched;
ElevatedButton(
onPressed: () => setState(() {
_launched = _launchInBrowser(toLaunch);
}),
child: Text(
'url_launcher',
),
)
Future<void> _launchInBrowser(Uri url) async {
if (!await launchUrl(
url,
mode: LaunchMode.externalApplication,
)) {
throw 'Could not launch $url';
}
}
添加回答
举报