【问题标题】:Is it possible for native iOS application to interact with Safari browser?原生 iOS 应用程序是否可以与 Safari 浏览器交互?
【发布时间】:2011-09-06 17:03:23
【问题描述】:
我想启用原生 iOS 应用程序和 Safari 浏览器之间的交互,以便在网页上的图像上点击 右键单击 会在上下文菜单中提供一个选项以将图像发送到另一个自定义编写的原生 iOS 应用程序,用于进一步处理和/或存储。
然而,根据来自 Safari 开发者库的 article,“iOS 目前不支持 Safari 扩展”。
有没有其他方法可以实现上述功能?
【问题讨论】:
标签:
iphone
objective-c
ios
browser
safari
【解决方案1】:
这里有多种选择:
- 您可以在应用程序的 Info.plist 文件中注册您的应用程序知道如何处理某些类型的文档(请参阅here in Apple's doc)。这样当你的 iPhone 遇到这种文档类型时,iOS 会建议用户在你的 app 中打开这个文档;例如,如果您注册 PDF 类型,然后点击作为邮件附件的 PDF 文档,您的应用程序将列在建议的菜单中,然后以该文档作为参数打开。
但是似乎即使这对任何类型(如 DOC、PDF 甚至自定义类型)都适用,它不适用于图像,这似乎是iOS 以单独的方式处理 :(
- 更简单的方法是在应用程序的 Info.plist 中注册任何自定义 URL 方案。见here and below in the Apple's doc。例如,当您 iPhone 中的任何位置(在您自己的应用程序中,或在其他第三方应用程序中,包括 Safari)遇到“myapp://xxx/yyy/zzz”之类的 URL 时,它会打开您的应用程序,并通过URL 作为参数。然后,您可以使用此 URL 做任何您想做的事情。
然后解决方案是在您的网页中添加一些代码,以便当点击图像时,您要求 Safari 打开 URL“myimageeditor://edit?url=http://www.url.of/your /图像.jpg”。如果您注册了“myimageeditor://” URL 方案,您的应用将使用参数中的 URL 打开,然后您将能够使用嵌入 URL 检索图像。