dart 当设备具有除Chrome以外的默认浏览器时,Flutter ChromeSafariBrowser未启动

q9yhzks0  于 2023-05-11  发布在  Flutter
关注(0)|答案(2)|浏览(101)

我在我的应用程序中使用ChromeSafariBrowser。我在Android设备上运行应用程序时遇到了一个问题,该设备将Chrome以外的浏览器设置为默认浏览器。在这种情况下,ChromeSafariBrowser未运行,InAppBrowser将使用设备的默认浏览器启动。我该怎么做才能解决这个问题?
我想用chrome启动,即使用户设置了另一个默认浏览器。

final ChromeSafariBrowser browser =
        new ChromeSafariBrowser(new InAppBrowser());

        await browser.open(
            url: loginUrl,
            options: ChromeSafariBrowserClassOptions(
                android:
                AndroidChromeCustomTabsOptions(addDefaultShareMenuItem: false,
                    packageName: "com.android.chrome"),
                ios: IOSSafariOptions(barCollapsingEnabled: true)));
nuypyhwy

nuypyhwy1#

你也可以使用webviewflutter
在pubspec.yml文件中添加依赖项:

webview_flutter: ^0.1.1

对于iOS应用程序下面的键粘贴在.plist文件内的iOS项目文件夹

<key>io.flutter.embedded_views_preview</key><string>yes</string>
<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
    <key>NSAllowsArbitraryLoadsInWebContent</key>
    <true/>
</dict>

这是类代码:

import 'package:flutter/material.dart';
import 'package:webview_flutter/webview_flutter.dart';
import 'dart:async';

class WebViewClass extends StatefulWidget {
  @override
  _WebViewClassState createState() => _WebViewClassState();
}

class _WebViewClassState extends State<WebViewClass> {
  Completer<WebViewController> _controller = Completer<WebViewController>();

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('WebView'),
      ),
      body: WebView(
        initialUrl: 'https://google.com',
        onWebViewCreated: (WebViewController webViewController) {
          _controller.complete(webViewController);
        },
      ),
    );
  }
}
gjmwrych

gjmwrych2#

我自己刚刚遇到了这个问题,发现这个问题已经被InAppWebView团队修复了。如果您需要更多详细信息,请参阅here

相关问题