【问题标题】:How to send user out of the application - To a specific directory path如何将用户发送到应用程序之外 - 到特定目录路径
【发布时间】:2020-09-27 13:54:08
【问题描述】:

我在以下路径下导出用户文件的特定路径:
例如:/storage/emulated/0/Android/data/com.example.app_name/files
但是问题不在于如何生成路径,而是如何进行此重定向(打开存储文件的文件夹)。 我尝试使用插件url_launcher,但显然它不起作用。我尝试将此路径作为 url 启动:
代码示例:

FlatButton(
    onPressed: () async{
        // _localPath returns /storage/emulated/0/Android/data/com.example.app_name/files 
        final path = await _localPath;
        if (await canLaunch(path)) {
            await launch(path);
        } else {
            throw 'Could not launch $path';
          }
        },
    child: Text('Navigate to App storage Folder'),
      ),

用户将数据导出为 csv 文件,他想使用该文件。
预期结果:用户将被重定向到路径(文件夹文件)并退出 Flutter 应用程序。 PS:我只针对 Android 平台。

【问题讨论】:

  • 关于打开文件的那些问题,我的问题是:如何在不打开文件的情况下将用户重定向到应用程序之外。
  • @Houssem 你试过我的答案吗?
  • @JoãoSoares 我正在尝试,现在仍然无法访问 android/data/com.example.../files,我会接受它,让我验证一些事情,以便我可以还提供有关该问题的有用信息。目前我认为我们无法访问../Android/data/..,因此我将尝试在下载文件夹中完成工作。

标签: flutter url navigation


【解决方案1】:

我似乎找到了一个名为open_file 的软件包来解决您的问题。 您只需指向要打开的路径,它就会向操作系统询问您要用于处理文件的应用程序或使用默认设置的应用程序。

基本代码示例:

class OpenDirectoryPath extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Center(
      child: RaisedButton(
        child: Text('Open path'),
        onPressed: () {
          _openPath('/storage/emulated/0/Download/');
        },
      ),
    );
  }

  void _openPath(String path) async {
    OpenFile.open(path);
  }
}

在 Android 中测试

【讨论】:

  • 我觉得你的答案很有用,但它不是一个明确的答案,因为文件管理器没有打开给定的路径。但是文件管理器将提供的默认路径。我试过的路径:在文件文件夹下我的应用程序,直接在手机存储中的自定义文件夹下。
  • 好像我错误地使用了默认的下载目录作为示例,并且Android文件管理器已经在同一个文件夹中打开了。所以它只是切换应用程序。我开始真正相信这是不可能的,除非文件管理器应用程序接受一个参数,告诉它您要将用户发送到哪个路径。而且由于您无法控制用户将使用的应用程序,因此您无法做到这一点。
猜你喜欢
  • 2013-08-14
  • 1970-01-01
  • 1970-01-01
  • 2017-09-20
  • 2022-08-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多