如何从UIViewController打开照片应用程序?

14
我有一些可能的解决方案,可以从uibutton操作中打开照片应用程序。 就像打开Facebook身份验证屏幕一样,这意味着当用户点击uibutton时,它将最小化本机应用程序并打开照片应用程序。 这对iOS 6和iOS 7版本都可行吗?
如果您知道,请提供一些可能的结果。
如果有人提供解决方案,我真的很感激您。

哪个照片应用程序? - Maulik
@maulik 默认苹果照片应用程序。 - user1915959
1
你的意思是想要访问照片相册吗?如果是这样,你需要实现UIPickerController并通过一个视图(模态或弹出或任何其他类型)访问照片相册,这样你就可以访问照片相册了。如果你想从你的应用程序中启动另一个应用程序,那么下面有一些答案。 - Adrian P
@XCodeMonkey,“uipickercontroller”是什么?你实际上是想使用“UIImagePickerController”吗?在帮助显然是新手的人时,清晰表达非常重要。 - rmaddy
@user1915959 你为什么想要启动照片应用程序?让用户在不离开您的应用程序的情况下选择照片或使用相机拍照不是更好吗?要实现这一点,您可以使用 UIImagePickerController - rmaddy
@rmaddy,你是对的。我没有完全写出方法名。我是在我的iPhone上打字的。我确实是想提到UIImagePickerController。谢谢你的纠正。 - Adrian P
2个回答

45
UIApplication.shared.open(URL(string:"photos-redirect://")!)

这对我有用!我正在尝试从我的React Native应用程序打开照片应用程序,并通过使用Linking.openURL("photos-redirect://");使其工作。 - lefoy
有没有像预定义键一样的“UIApplicationOpenSettingsURLString”? - Ryan
4
有深链接可用吗?比如指定某个标识符应该打开那个资产... - Jonny
2
Objective C: [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"photos-redirect://"]]; - birdman
无法在 macOS Catalyst 上工作。 - Ofir Malachi

5

不可能实现。照片应用程序不注册任何URL schemes。这意味着您无法通过调用以下方法打开它:

func open(_ url: URL, 
        options: [UIApplication.OpenExternalURLOptionsKey : Any] = [:], 
        completionHandler completion: ((Bool) -> Void)? = nil)

要通过编程打开照片应用程序是不可能的,但可以通过传递有效的URL(就像打开Safari或电话应用程序一样)来打开其他应用程序。

文档:关于苹果URL方案


1
除此之外,您还可以查看下面的文档以获取有效的苹果URL Scheme:https://developer.apple.com/library/ios/featuredarticles/iPhoneURLScheme_Reference/Introduction/Introduction.html - Legoless
@reecon,您能告诉我传递有效URL的含义吗? - user1915959
@Legoless,说得好。我更新了我的答案,并附上了链接以便更清晰明了。 - Rafał Sroka
@user1915959,我在回答中添加了一个链接,该链接指向有关URL schemes的文档,您可以使用这些 schemes 来打开其他应用程序。 - Rafał Sroka
Photos App可以使用URL Schema打开,以下是iOS支持的一些URL Schema列表[https://medium.com/@contact.jmeyers/complete-list-of-ios-url-schemes-for-apple-apps-and-services-always-updated-800c64f450f]. 目前还不可能进入任何特定的相册或其他选项卡菜单。 - Mohit G.

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