我想为我的应用创建一个Android Style共享功能.我创建了一个共享扩展,当你在股票照片应用程序中选择图片并按下共享时,它会被调用.现在我想将这些图片发送到主应用程序并在那里处理.我现在的问题是:
我想启动我的包含应用程序.
我尝试使用URL方案.
URL方案从其他地方启动了应用程序 - 所以问题不存在.
看起来这个对象是零:
self.extensionContext
Run Code Online (Sandbox Code Playgroud)
因此我无法运行此方法:
[self.extensionContext openURL:url completionHandler:nil];
Run Code Online (Sandbox Code Playgroud)
我可以启动我的应用吗?URL方案是否可以在自定义键盘中使用?
谢谢!
我想要的是
在Iphone上,当访问Safari或Chrome中的网站时,可以将内容分享给其他应用程序.在这种情况下,您可以看到我可以将内容(基本上是URL)共享到名为Pocket的应用程序.
有可能吗?特别是Cordova?
在iOS 8 beta 2上,应该可以使用app扩展中的openUrl写入发行说明中:

但是,当我尝试使用此API(在Xcode 6 beta 2上)时,我收到以下错误:

Beta 2是否真的解决了这个问题?
我有一个框架,其中包含一个故事板和一组默认图像.该框架可以包含在多个应用程序中,目的是如果需要,应用程序可以使用自己的变体覆盖无,部分或全部默认图像.
我面临的问题是我没有找到适用于所有场景的解决方案,例如:如果框架包含一个名为Person的图像,那么框架由app A使用,它提供了自己的Person版本,以及框架由应用程序B使用,它不提供自己的Person版本然后:
如果框架使用以下代码设置图像:
let image = UIImage.init(named: "Person")
someImageView.image = image
Run Code Online (Sandbox Code Playgroud)
然后,当app A运行时,会找到并正确显示Person图像的变体.(App A在其资产目录中有Person的变体)但是,当app B运行时,不会显示任何内容.
另一方面,如果我没有使用代码设置图像(即它在故事板图像视图的Xcode属性检查器中设置),那么当运行应用程序B时,现在正确显示默认框架图像,但现在应用程序A的自定义人员图像不显示.
有没有办法可以成功地涵盖这三种情况:
一个默认图像在框架中,应用程序A和应用程序B都不希望用它们的自定义图像覆盖它,默认图像在框架中,而应用程序A想要覆盖它,但应用程序B却没有.框架中有一个默认图像,app A和app B都希望用自己的变体覆盖它.(我有一个大型的故事板,框架中有几十个图像,理想情况下我希望有一个完全不涉及代码的解决方案 - 即默认图像名称是通过Xcode的属性检查器为图像视图设置的,如果是应用程序在其资产目录中提供自己的图像版本,自动显示图像)
这是我尝试过的没有用的东西:
以下是我所想到的不起作用:
以下是我正在考虑的选项:
确认UIDocumentInteractionController在Xcode 6.5中工作,但流程有点不稳定.NSURL的东西应该也可以,但它也有点可疑.有没有人有任何其他的想法让我的包含应用程序从共享扩展打开,或从共享扩展与它通信的想法?
我正在为iOS 10设置一个需要登录社交网络的iMessage应用程序.在传统的iOS应用程序中,我们通常在AppDelegate中配置带有app id的共享实例...我还需要处理回调URL:传统上放置在AppDelegate中的2个方法(下面).
使用iMessage app/extension,没有AppDelegate.我在哪里可以放置此代码?我能够在应用程序ID配置willBecomeActive上MessagesViewController并没有得到一个实例回来了,但我也把这些方法MessagesViewController与破发点,他们从来不被称为,我相信这是防止我的成功日志中,任何帮助深表感谢!
更新:我最大的问题,甚至在弄清楚如何处理callBack之前就是如何没有openURL方法可用,有一些关于扩展的方法,但我没有成功提出任何建议的解决方案: openURL不起作用在行动扩展中
我看到它要么(1)找到一种方法在我的iMessage扩展中调用openURL,这样我就可以让SDK处理OAuth(2)创建我自己的webview,推送到网站,登录用户,存储令牌和segue回到我的应用程序(似乎没必要)或(3)创建一个iPhone应用程序,只是为了登录(即iMessage扩展打开的父应用程序和登录),再次似乎没有必要).当然,这在iMessage扩展中会很常见吗?
func application(application: UIApplication, handleOpenURL url: NSURL) -> Bool {
}
func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject) -> Bool {
}
Run Code Online (Sandbox Code Playgroud) 我正在构建一个浏览器应用程序.我希望iOS将其检测为浏览器.我尝试添加http到URL Schemes但是徒劳无功.
我试过这个答案.
尝试[self.extensionContext openURL:... completionHandler:...];在iOS 8 Share扩展程序中使用以打开包含应用程序永远不会打开应用程序,并始终使用success = NO调用完成处理程序.
以下是Action扩展的相同问题,但我认为Share扩展能够打开包含应用程序比Action扩展更合理.共享扩展的要点是上传一个可能很大的数据,并且在不打开应用程序的情况下执行此操作的唯一方法是通过NSURLSession,这只能执行HTTP(S)上载.但是应用程序可能希望通过与HTTP(S)上载不同的机制来共享内容.
Apple文档未声明openURL...不能用于任何特定类型的扩展.很难知道这是一个错误还是预期的行为.没有关于此的官方信息.