iOS Safari URL UTI 共享面板

4

我想通过Safari的分享按钮和分享菜单将当前URL传递到我的应用程序中。我希望这个URL能够直接传递到我的应用程序,而不是作为一个分享扩展。但是从Safari中,分享菜单并没有显示我的应用程序。我已经注册了以下的文档类型(UTI),但还是没有成功:

public.url  
public.file-url 
public.url-name  

我的应用程序可以使用com.adobe.pdf无障碍地从pdf文档共享中显示。非常感谢您分享来自Safari的URL的帮助。我在使用苹果应用程序中显示的照片共享按钮时也遇到了类似的问题。
请问Safari URL和通过共享按钮共享照片的正确UTI是什么,以便它们能够正确显示在共享表单中?谢谢。
Bob

你的应用程序默认情况下不会显示在共享表上。你是否向右滑动并点击“更多...”来激活你的应用程序? - Code Different
是的 - 我在那里找过了。它没有列出来。 - Robert Marlan
2个回答

1
  • 进入项目(Project Navigator中的根元素),选择您的共享目标
  • 进入“信息”
  • 打开NSEXtension -> NSExtensionAttributes -> NSExtensionActivationRule
  • 对于URL支持:在NSExtensionActivationRule下面添加NSExtensionActivationSupportsWebURLWithMaxCount(类型为Number,值是任何大于0的数字,取决于您允许在一个共享操作中处理多少个URL)
  • 对于照片和/或视频支持,请添加NSExtensionActivationSupportsImageWithMaxCount和/或NSExtensionActivationSupportsMovieWithMaxCount
  • 对于其他文件类型,请添加NSExtensionActivationSupportsFileWithMaxCount

在您的共享目标的Info.plist文件的原始代码中,它将如下所示:

<key>NSExtension</key>
<dict>
    <key>NSExtensionAttributes</key>
    <dict>
        <key>NSExtensionActivationRule</key>
        <dict>
            <key>NSExtensionActivationSupportsFileWithMaxCount</key>
            <integer>10</integer>
            <key>NSExtensionActivationSupportsImageWithMaxCount</key>
            <integer>10</integer>
            <key>NSExtensionActivationSupportsMovieWithMaxCount</key>
            <integer>10</integer>
            <key>NSExtensionActivationSupportsWebURLWithMaxCount</key>
            <integer>1</integer>
        </dict>
    </dict>
    <key>NSExtensionMainStoryboard</key>
    <string>YourStoryboard</string>
    <key>NSExtensionPointIdentifier</key>
    <string>com.apple.share-services</string>
</dict>

对于看不到他们的应用程序出现在Dropbox导出表中的人,请注意:Dropbox将URL传递给共享表,您必须支持NSExtensionActivationSupportsWebURLWithMaxCount


我想了解如何在操作扩展程序中注册URL后,实际上如何打开应用程序的更多信息。 - Mr Rogers
如果我们想让应用程序(而不是扩展)来处理它们呢? - Rivera

0

我刚刚处理了这个问题。看起来这是Safari的问题,而不是应用程序配置问题。只要您按照文档正确设置了权限,请尝试在Google Chrome中进行测试。从那里可以很好地共享...


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接