My Flutter(Android和iOS)应用程序生成KML或GPX文件,其工作正常。
现在,我想添加一个按钮“打开文件”,它应该打开这样一个系统对话框,其中列出了已安装的Map或其他消费应用程序(可以处理此类格式)。
如何打开此对话框?如何找到与格式相关的应用程序以及如何将文件发送到这些应用程序。我猜,有一个插件,但找不到一个.它必须在Android和iOS上工作,很好,有网络支持。
我刚看了open_file,但我不太确定它是否能按预期工作,因为它没有列出对KML/GPX的支持。
先谢谢你了!
1条答案
按热度按时间ncecgwcz1#
如果您找到了像open_file这样的开源Flutter plug-in,您可以自己添加MIME类型。
对于KML格式:https://en.wikipedia.org/wiki/Keyhole_Markup_Language
对于GPX格式:https://en.wikipedia.org/wiki/GPS_Exchange_Format
由于这个包是开源的,我想修改代码,因为Map看起来很简单:
https://github.com/crazecoder/open_file/blob/master/ios/Classes/OpenFilePlugin.m
和
https://github.com/crazecoder/open_file/blob/master/android/src/main/java/com/crazecoder/openfile/OpenFilePlugin.java
您需要分叉项目并添加所需的类型。
另外,您已发布issue ticket #116
回购所有者的回应是
OpenFile.open(“/sdcard/example.txt”,键入:“text/plain”,uti:public.plain-text);
如果有效,请响应,因为我不确定两个不同平台的文件类型(
uti
vs MIME类型)是否在Flutter中通用,或者您是否有特定于平台的检测代码来正确分配文件类型。