Ios 如何强制具有自定义扩展名的文本文件在myApp中打开,而不是在Safari中显示为文本

Ios 如何强制具有自定义扩展名的文本文件在myApp中打开,而不是在Safari中显示为文本,ios,objective-c,safari,webkit,mime,Ios,Objective C,Safari,Webkit,Mime,我想听听您对以下情况的可行解决方案的想法/建议: 有一个外部web服务可以为iPad用户提供我选择/设计的自定义格式文件,通过用户iPad上的Safari浏览器下载 浏览器不会打开此文件,而是调用myApp来读取它并使用其内容(uuid代码以其值启动其内部进程) 我已经研究过了,现在我知道如何注册“myApp”来处理iOS级别的自定义文件扩展名。只要文件不是文本文件(即,如果它是真正的二进制文件,我会得到“在myapp中打开”提示),就可以正常工作 一旦Safari将该文件识别为文本文件,其

我想听听您对以下情况的可行解决方案的想法/建议:

  • 有一个外部web服务可以为iPad用户提供我选择/设计的自定义格式文件,通过用户iPad上的Safari浏览器下载

  • 浏览器不会打开此文件,而是调用myApp来读取它并使用其内容(uuid代码以其值启动其内部进程)

我已经研究过了,现在我知道如何注册“myApp”来处理iOS级别的自定义文件扩展名。只要文件不是文本文件(即,如果它是真正的二进制文件,我会得到“在myapp中打开”提示),就可以正常工作

一旦Safari将该文件识别为文本文件,其内容就会显示在页面上,用户就没有机会像使用相同扩展名的二进制文件那样“在myApp中打开”


如果有任何想法/建议能让我走上正轨,我将不胜感激。谢谢。

这在/etc/apache2/httpd.conf中对我很有用

<IfModule headers_module>
  <FilesMatch ".custom$">
    Header Set Content-type application/myApp
    Header Set Pragma public
    Header Set Expires 0
    Header Set Cache-Control private
  </FilesMatch>
</IfModule>

标题集内容类型应用程序/myApp
标题集Pragma public
标题集过期0
头集缓存控制专用
关键是设置内容类型,因为内容配置在iOS上的Safari中被忽略。这要归功于亚伦。(很抱歉,我忘记了你的全名,因为另一个答案与你的评论一起被删除了)。
如果你加上你的答案,我就换成它。谢谢。

如果您创建自定义文件格式并注册应用程序,Safari将自动向用户提供类似于在Safari中打开PDF的选项,并提供在iBooks或其他已安装的应用程序中打开该文件的功能。我已经尝试过了,浏览器会在检测到该文件是基于文本的文件后立即打开该文件。不管它的扩展。可能在浏览器显示自定义(但基于文本)文件的内容后会显示此选项?该选项可能会在类似于处理PDF的方式后显示。但不管怎样,你可以查看一个自定义HTTP头,告诉Safari它不是一个文本文件。我已经修改了我的问题,以反映当前的发展。只要文件是二进制文件,我就会得到“在myApp中打开”提示,但当文件是文本文件时,浏览器将显示其内容,并且似乎不再有在“myApp”中打开的方法。此外,在iOS上似乎忽略了自定义HTTP头(至少是关于内容处置的头)有什么原因使您的文件不能是不透明的二进制格式吗?