首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >url_launcher插件在颤振中没有工作。

url_launcher插件在颤振中没有工作。
EN

Stack Overflow用户
提问于 2020-09-15 06:55:52
回答 4查看 424关注 0票数 0

我在做颤音应用程序。我想在应用程序中打开网站。因此,我已经使用url_launcher插件打开网址,但它没有工作。无需在应用程序中显示该网站。

这是我的代码:

代码语言:javascript
复制
class _MainPageState extends State<MainPage>
    with SingleTickerProviderStateMixin {
  TabController _tabController;

  @override
  void initState() {
    _tabController = new TabController(length: 2, vsync: this);
    super.initState();
  }

  void _launch(String url) async {
    try {
      if (await canLaunch(url)) {
        await launch(url);
      }
    } catch (e) {
      print(e);
    }
  }

  Widget tab1() {
    return Container();
  }

  Widget tab2() {
    return InkWell(
      onTap: () {
        _launch("www.google.com");
      },
    );
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        bottom: TabBar(
          unselectedLabelColor: Colors.black,
          labelColor: Colors.white,
          tabs: [
            new Tab(text: 'Tab 1'),
            new Tab(text: 'Tab 2'),
          ],
          controller: _tabController,
          indicatorColor: Colors.white,
          indicatorSize: TabBarIndicatorSize.tab,
        ),
        bottomOpacity: 1,
      ),
      body: TabBarView(
        children: [tab1(), tab2()],
        controller: _tabController,
      ),
    );
  }
}

有人知道如何解决这个错误吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2020-09-15 07:22:37

你用错了包

若要在颤振应用程序中打开任何网站,请使用webview_flutter单击此处查看详细信息以使用此包。

票数 2
EN

Stack Overflow用户

发布于 2021-03-23 12:57:45

如果使用正确,url_launcher工作正常

代码语言:javascript
复制
_launchURL() async {
    const url = "https://something.com";
    if (await canLaunch(url)) {
      await launch(
        url,
        forceWebView: false,
        enableJavaScript: true,
        headers: <String, String>{'my_header_key': 'my_header_value'},);
    } else {
      
      throw 'Could not launch ';
    }
  }

这些文档显示了何时以及为什么使用forceWebView和enableJavaScript。

但是请注意,Android 11 (API级别30)会给您带来一些问题。在这种情况下,canLaunch返回false。为了使它生效,我必须在我的AndroidManifest.xml中添加以下内容:

代码语言:javascript
复制
<activity android:name="io.flutter.plugins.urllauncher.WebViewActivity"
           android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
           android:exported="false"/>

这本身是行不通的,所以我做了更多的调查,发现了以下内容:https://developer.android.com/training/basics/intents/package-visibility#all-apps

然后,我将以下内容添加到我的AndroidManifest.xml中并为我解决了这个问题:

代码语言:javascript
复制
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" />
票数 1
EN

Stack Overflow用户

发布于 2020-09-15 07:03:04

你好,这是您在这个文件中的全部代码?

首先,在文件开始时缺少一些导入;)

例如,您需要添加

代码语言:javascript
复制
import 'package:url_launcher/url_launcher.dart';

你跑了吗

代码语言:javascript
复制
pub get

在修改pubspec.yaml文件之后?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63896633

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档