3 回答

TA貢獻(xiàn)1783條經(jīng)驗(yàn) 獲得超4個(gè)贊
之前,當(dāng) Firebase 動(dòng)態(tài)鏈接被強(qiáng)制加載到 WebView 中時(shí),我在 Android 上遇到了類似的錯(cuò)誤。就我而言,F(xiàn)DL 預(yù)計(jì)將由 Android 中的 Google Play 服務(wù)處理。但是由于 WebView 不知道如何處理它被迫顯示的鏈接,WebView 返回“net::ERR_UNKNOWN_URL_SCHEME”錯(cuò)誤。我不確定這是否與您的情況相同,因?yàn)槲覠o(wú)法驗(yàn)證您嘗試從“intent://kakaopay...”加載的鏈接
您可以嘗試使用外部打開(kāi)鏈接url_launcher
。使用 RegEx 過(guò)濾意圖 URL 并檢查 URL 是否可以在外部(應(yīng)用程序外部)啟動(dòng)和處理。
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
) 似乎已過(guò)時(shí),我無(wú)法在此處找到它https://pub.dev/packages?q=web_view_plugin。Flutter 有它的官方 WebView 插件 (?webview_flutter
) 已經(jīng)發(fā)布,我建議檢查它是否適合你的用例。

TA貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超13個(gè)贊
這樣做了:
_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';
? }
}
我手動(dòng)將我希望它在 _launch 函數(shù)中打開(kāi)的 url/鏈接放在 _launch 函數(shù)中...不要介意 _launch 括號(hào)中的 url。
我還將此添加到 Webview 小部件:
navigationDelegate: (NavigationRequest request) {
? ?if (request.url.contains(RegExp('^intent://.*\$')))? {
? ? ? ? _launchURL(request.url);
? ? ? ? return NavigationDecision.prevent;
? ?}
? ? ?return NavigationDecision.navigate;
},
希望這對(duì)你有用。這個(gè)對(duì)我有用...

TA貢獻(xiàn)1880條經(jīng)驗(yàn) 獲得超4個(gè)贊
1.使用你的APP在flutter中使用參數(shù)打開(kāi)其他應(yīng)用程序(在你的動(dòng)態(tài)鏈接中);2.使用:url_launcher:^6.1.6;
首先,他們的應(yīng)用程序必須支持動(dòng)態(tài)鏈接;其次,他們?yōu)槟峁┙灰椎膭?dòng)態(tài)鏈接;這樣我們就可以點(diǎn)擊你APP中的動(dòng)態(tài)鏈接,跳轉(zhuǎn)到他們APP的指定頁(yè)面了。
代碼:
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';
}
}
添加回答
舉報(bào)