iOS - 从外部应用程序打开带有自定义扩展名的文件到我的应用程序中不起作用

问题描述

我的 Swift 应用程序应该打开带有自定义扩展名的文件,假设它是“ext”。

在 info.plist 文件中就像

<key>UTExportedTypeDeclarations</key>
<array>
    <dict>
        <key>UTTypeDescription</key>
        <string>List of datatype</string>
        <key>UTTypeConformsTo</key>
        <array>
            <string>public.json</string>
            <string>public.database</string>
            <string>public.data</string>
            <string>public.text</string>
            <string>public.content</string>
        </array>
        <key>UTTypeIdentifier</key>
        <string>com.myapp.datatype</string>
        <key>UTTypeTagSpecification</key>
        <dict>
            <key>public.filename-extension</key>
            <array>
                <string>ext</string>
            </array>
            <key>public.mime-type</key>
            <array>
                <string>application/json</string>
            </array>
        </dict>
    </dict>
</array>

处理打开的代码在应用程序委托中,但根本没有调用应用程序。

@UIApplicationMain
class AppDelegate: UIResponder,UIApplicationDelegate {

    func application(_ application: UIApplication,didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    
     let url=launchOptions?[UIApplication.LaunchOptionsKey.url]
  
    if ((url) != nil) {
        
        //importing is implemented here
...
...
    }
    
    return true
}
...
...

在 iOS 模拟器上执行应用程序时,会发生这种情况

如果我从“文件”应用程序中选择这样一个文件,它会显示在“文件”应用程序本身中,但既不会在我的应用程序中打开,也没有选项可以直接将其发送到我的应用程序。

但该扩展似乎已注册,因为在“文件”应用程序中以 JSON 文本形式打开文件时会显示描述(数据类型列表)。

可以采取哪些措施来代表其他应用(例如文件或电子邮件)修复打开问题。

提供的 info.plist 片段是否正确?我应该在项目中设置其他内容吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)