android - 在适当的外部地图应用程序中打开 KML/GPX 文件
问题描述
我的 Flutter(Android 和 iOS)应用程序生成 KML 或 GPX 文件,按预期工作。
现在我想添加一个“打开文件”按钮,它应该打开这样一个系统对话框,其中列出了已安装的地图或其他消费应用程序(可以处理此类格式)以供选择。
如何打开此对话框?如何找到与格式相关的应用程序以及如何将文件发送到这些应用程序。我想,有一个插件可以解决这个问题,但找不到。它必须在 Android 和 iOS 上运行,最好有网络支持。
我刚刚看到open_file但我不太确定它是否按预期工作,因为它没有列出对 KML/GPX 的支持。
提前致谢!
解决方案
如果你找到了一个开源的Flutter 插件,比如open_file,你可以自己添加 MIME 类型。
对于 KML 格式:https ://en.wikipedia.org/wiki/Keyhole_Markup_Language
对于 GPX 格式:https ://en.wikipedia.org/wiki/GPS_Exchange_Format
由于该软件包是开源的,因此我正在考虑修改代码,因为映射似乎很简单:
https://github.com/crazecoder/open_file/blob/master/ios/Classes/OpenFilePlugin.m
和
您需要分叉项目并添加所需的类型。
或者,您已发布问题单 #116
回购所有者回应的地方
OpenFile.open("/sdcard/example.txt", type: "text/plain", uti: "public.plain-text");
如果可行,请做出回应,因为我不确定这两种不同平台的文件类型(uti
与 MIME 类型)是否在 Flutter 中通用,或者您是否有特定于平台的检测代码来正确分配文件类型。
推荐阅读
- r - 来自 json 文件的单变量嵌套列表,转换为数据框行
- tig - 在 tig 中,有没有办法查看所有文件的差异,例如 Github 拉取请求
- php - woocommerce/花式产品设计师的结帐部分中的多个缩略图
- ios - ObjC如何在选择TabBarItem时弹回RootViewController
- php - Codeigniter 加载和读取库中的文件
- awk - 组织 Grep 输出
- graphql - apollo graphQL - 如何通过角度发送突变的对象数组
- c# - ASP.NET MVC 5 中的级联模型 - 需要架构建议
- php - 使用循环 If、Elseif 和 Else 从数据库中查找字符 Stripost
- android - Android 和 IOS 上的 firebase 推送通知有问题吗?