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

问题描述:

我想知道哪个应用调用共享扩展以将图像共享到我的应用(它的bundleId或appName)。但我找不到办法。 NSExtensionContext中没有关于源应用程序的信息。我将不胜感激任何帮助。如何在IOS8中使用共享扩展时获取源应用的bundleId

你并没有发现什么应用程序在托管您的扩展。这不是扩展系统的一部分。您可以找出应用程序传递给您的数据类型,并通过操作扩展来返回一些数据。但是你不知道你在处理什么,只有数据来回传递。

软件包ID通常com.yourcompany/yourname.yourappname

如果你不知道什么Xcode中有公司名称,建立一个新的项目,并提示您的应用程序名称将有屏幕你的公司名称。

,你也可以做到这一点,

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

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

How to get bundle ID?

为了达到你的要求:

#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 
+0

哪里是'_hostBundleID'正式记录? – Pang 2018-02-07 04:46:33