如何在 Flutter 中启动 URL?

Posted

技术标签:

【中文标题】如何在 Flutter 中启动 URL?【英文标题】:How to launch URL in Flutter? 【发布时间】:2020-01-21 12:11:28 【问题描述】:

注意:我已经在 *** 上搜索了很多关于这个问题的时间并阅读了所有类似的问题

我正在制作 Flutter 应用,我想在按钮点击时启动一个 URL(基于 Canvas)。

一切都很好,直到我使用了“url_launcher”。

我正在使用 Flutter 1.13.6(最新)。

下面是我正在使用的重定向功能。

import 'package:url_launcher/url_launcher.dart' as URLLaucher;

abstract class URL 
  static launchURL(String url) async 
    url = Uri.encodeFull(url);
    if (await URLLaucher.canLaunch(url)) 
      await URLLaucher.launch(url);
     else 
      throw 'Unknown error, can\'t launch the URL. Холбоост нэвтрэхэд алдаа гарлаа';
    
  

这是我运行“flutter run”命令时出现的错误日志。


FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring project ':url_launcher'.
> Could not resolve all artifacts for configuration ':url_launcher:classpath'.
   > Could not download gradle.jar (com.android.tools.build:gradle:3.4.2)
      > Could not get resource 'https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle/3.4.2/gradle-3.4.2.jar'.
         > Read timed out
   > Could not download builder.jar (com.android.tools.build:builder:3.4.2)
      > Could not get resource 'https://dl.google.com/dl/android/maven2/com/android/tools/build/builder/3.4.2/builder-3.4.2.jar'.
         > Premature end of Content-Length delimited message body (expected: 31038805; received: 2359280
> Failed to notify project evaluation listener.
   > Could not get unknown property 'android' for project ':url_launcher' of type org.gradle.api.Project.
   > Could not find method implementation() for arguments [project ':url_launcher_web'] on object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.
   > Could not find method implementation() for arguments [project ':url_launcher_macos'] on object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

【问题讨论】:

您可以尝试访问this url 吗?您似乎无法下载成绩文件 你的url_launcher版本和flutter版本是多少 ~sdk: ">=2.3.0 【参考方案1】:

在向 pubspec.yaml 添加内容后进行热重启时会发生这种情况 - 只需关闭应用并重新安装即可

【讨论】:

【参考方案2】:

我有同样的错误。 所以我将颤振升级到v1.12.13 并使用url_launcher5.3.0 并且它起作用了。

【讨论】:

这里也一样,反正是你【参考方案3】:

pubspec.yaml

url_launcher: ^6.0.6

ma​​in.dart

import 'package:flutter/material.dart';
import 'package:url_launcher/url_launcher.dart';

const _url = 'https://flutter.dev';

void main() => runApp(
  const MaterialApp(
    home: Material(
      child: Center(
        // ignore: deprecated_member_use
        child: RaisedButton(
          onPressed: _launchURL,
          child: Text('Bappa\'s apps in playstore'),
        ),
      ),
    ),
  ),
);

void _launchURL() async 

  launch("https://play.google.com/store/search?q=pub%3ABAPPA%20SAIKH&c=apps" );

【讨论】:

以上是关于如何在 Flutter 中启动 URL?的主要内容,如果未能解决你的问题,请参考以下文章

(颤振)如果没有互联网连接,如何启动静态 html 页面而不是 URL?

如何在 Flutter 中缩短 url?

如何在 Flutter 中获取原生启动画面?

如何使用 onGenerateRoute 在 URL 中显示 Flutter Web 路由名称?

如何从 Flutter 中的 URL 下载文件并将其保存在 iOS 共享文件夹中?

URL 启动器在某些 Android 设备中无法与 Flutter Web 一起使用