在IOS8中使用共享扩展时如何获取源应用程序的bundleId

时间:2015-02-11 11:20:26

标签: ios xcode ios8 ios8-share-extension

我想知道哪个应用调用了共享扩展程序以将图像共享到我的应用程序(其bundleId或appName)。但我发现无法做到这一点。 NSExtensionContext中没有关于源应用程序的信息。我非常感谢任何帮助。

3 个答案:

答案 0 :(得分:6)

实现您的要求:

#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

答案 1 :(得分:3)

您无法了解托管您的扩展程序的应用程序。这不是扩展系统的一部分。您可以了解应用程序传递给您的数据类型,并通过操作扩展来返回一些数据。但是你无法找到你正在处理的对象,只知道来回的数据。

答案 2 :(得分:-1)

您的捆绑包ID通常是com.yourcompany / yourname.yourappname

如果您不知道Xcode对您公司名称的影响,请创建一个新项目,并提示您输入应用名称的屏幕将显示您的公司名称。

你也可以这样做,

在Xcode中,选择您的项目,然后选择您的目标(您应该只有一个),然后选择'信息'标签。您应该能够在那里看到包标识符。

这个问题的答案可以在这里找到:

How to get bundle ID?