如何注册iOS safari应支持的文档类型?

时间:2016-10-04 12:38:14

标签: ios cordova safari info.plist cfbundleidentifier

我在iOS应用程序上工作,该应用程序具有文件扩展名,例如: .vlin我希望iOS设备识别此扩展程序。到目前为止,我能够实现以下

    iphone原生邮件客户端支持
  • .vlin 在我的.vlin应用
  • 中点击{li>点击Vlin文件

我正在使用cordova并在config.xml中添加了配置设置

但不知何故,它不适用于iOS Safari浏览器。如果我尝试在iOS Safari中打开文件,它会在浏览器中作为文本文件打开。 我想在我的Vlin iOS应用中打开它。

我的info.plist和config.xml代码是:

<platform name="ios">        
<preference name="IosLaunchMode" value="singleTask" />
<config-file platform="ios" target="*-Info.plist" parent="UIFileSharingEnabled">
    <true />
</config-file> 
<config-file platform="ios" target="*-Info.plist" parent="CFBundleDocumentTypes">
    <array>
        <dict>
            <key>CFBundleTypeName</key>
            <string>com.example.vlin.vlin</string>
            <key>CFBundleTypeRole</key>
            <string>Editor</string>
            <key>LSHandlerRank</key>
            <string>Owner</string>
            <key>LSItemContentTypes</key>
            <array>
                <string>com.example.vlin.vlin</string>
            </array>
        </dict>
    </array>
</config-file>
<config-file platform="ios" target="*-Info.plist" parent="UTExportedTypeDeclarations">
    <array>
        <dict>
            <key>UTTypeConformsTo</key>
            <array>
                <string>public.data</string>
            </array>
            <key>UTTypeDescription</key>
            <string>Vlin document</string>
            <key>UTTypeIdentifier</key>
            <string>com.example.vlin.vlin</string>
            <key>UTTypeTagSpecification</key>
            <dict>
                <key>public.filename-extension</key>
                <string>vlin</string>
            </dict>
        </dict>
    </array>  
</config-file>

非常感谢任何帮助,提前谢谢。

  • info.plist中

        <key>UIFileSharingEnabled</key>
        <true/>
        <key>CFBundleDocumentTypes</key>
        <array>
          <dict>
            <key>CFBundleTypeName</key>
            <string>com.example.vlin.vlin</string>
            <key>CFBundleTypeRole</key>
            <string>Editor</string>
            <key>LSHandlerRank</key>
            <string>Owner</string>
            <key>LSItemContentTypes</key>
            <array>
              <string>com.example.vlin.vlin</string>
            </array>
          </dict>
        </array>
        <key>UTExportedTypeDeclarations</key>
        <array>
          <dict>
            <key>UTTypeConformsTo</key>
            <array>
              <string>public.data</string>
            </array>
            <key>UTTypeDescription</key>
            <string>Vlin document</string>
            <key>UTTypeIdentifier</key>
            <string>com.example.vlin.vlin</string>
            <key>UTTypeTagSpecification</key>
            <dict>
              <key>public.filename-extension</key>
              <string>vlin</string>
            </dict>
          </dict>
        </array>
      </dict>
    

示例文件格式:invite.vlin

{
 "invite”: {
  "name": “Some College",
  "identifier": “xxxxxxxxxxxxxxxxx”
 },
 “value”: “xxxxxxxxxxxxxx”
}

1 个答案:

答案 0 :(得分:0)

EDIT2:

您真正的问题是safari将您的.vlin文件视为文本文件,并且不允许您选择在其他应用程序中打开它,可能是您正确配置服务器以将其作为{{1}提供服务或者可能是com.example.vlin.vlin它应该显示打开对话框。

例如,您可以在我的服务器上测试此.vlin文件。

http://jcesarmobile.byethost33.com/test4.vlin

它不是真正的.vlin文件,它是.vlin文件压缩并重命名为.vlin,safari显示打开对话框

编辑:

不确定为什么人们是downvoting,config.xml中的config-file标签未实现,请参阅the issue to implement it

原始答案:

你不能在config.xml中使用config-file标签(它正在处理,但尚未完成)。

你可以在plugin.xml上使用它,所以你必须创建一个&#34; dumb&#34;插件只包含带有这些标签的plugin.xml。

你可以看看这个只使用plugin.xml写入Info.plist的插件 https://github.com/leecrossley/cordova-plugin-transport-security