在IOS8中使用共享扩展时如何获取源应用程序的bundleId
Posted
技术标签:
【中文标题】在IOS8中使用共享扩展时如何获取源应用程序的bundleId【英文标题】:How to get bundleId of the source app when using share extension in IOS8 【发布时间】:2015-02-11 11:20:25 【问题描述】:我想知道哪个应用调用了共享扩展来将图像共享给我的应用(它的 bundleId 或 appName)。但我发现没有办法做到这一点。 NSExtensionContext 中没有关于源应用程序的信息。我将不胜感激。
【问题讨论】:
【参考方案1】:实现您的要求:
#ifdef HIDE_POST_DIALOG
- ( void ) willMoveToParentViewController: ( UIViewController * ) parent
// This is called at the point where the Post dialog is about to be shown.
NSString * hostBundleID = [parent valueForKey:(@"_hostBundleID")];
NSLog( @"**** parent bundle id is %@" ,hostBundleID);
#endif
【讨论】:
_hostBundleID
的官方文档在哪里?
使用这个会让你的应用被拒绝提交吗?
@Pang 我在这里也找到了这个值:github.com/nst/ios-Runtime-Headers/blob/master/Frameworks/…【参考方案2】:
您无法找出托管您的扩展程序的应用程序。这不是扩展系统的一部分。您可以了解应用程序传递给您的数据类型,并且通过操作扩展,您可以返回一些数据。但是您无法知道您在与谁打交道,而只能知道来回传输的数据。
【讨论】:
【参考方案3】:您的捆绑包 ID 通常是 com.yourcompany/yourname.yourappname
如果您不知道 Xcode 中的公司名称是什么,请创建一个新项目,提示您输入应用名称的屏幕将显示您的公司名称。
你也可以这样做,
在 Xcode 中,选择您的项目,然后选择您的目标(您应该只有一个),然后选择“信息”选项卡。您应该能够在那里看到捆绑标识符。
这个问题的答案可以在这里找到:
How to get bundle ID?
【讨论】:
以上是关于在IOS8中使用共享扩展时如何获取源应用程序的bundleId的主要内容,如果未能解决你的问题,请参考以下文章