在 IOS8 中使用共享扩展时如何获取源应用程序的 bundleId
How to get bundleId of the source app when using share extension in IOS8
我想知道哪个应用程序调用共享扩展来将图像共享到我的应用程序(它的 bundleId 或 appName)。但是我找不到办法。 NSExtensionContext 中有 none 个关于源应用程序的信息。如果有任何帮助,我将不胜感激。
您的包 ID 通常是 com.yourcompany/yourname.yourappname
如果您不知道 Xcode 的公司名称,请创建一个新项目,提示您输入应用程序名称的屏幕将显示您的公司名称。
你也可以这样做,
在 Xcode 中,select 您的项目,然后是您的目标(您应该只有一个),然后是 'Info' 选项卡。您应该能够在那里看到包标识符。
这个问题的答案可以在这里找到:
How to get bundle ID?
您无法找出托管您的扩展程序的应用程序。那不是扩展系统的一部分。您可以了解应用程序传递给您的数据类型,并且通过操作扩展,您可以获得 return 一些数据。但是您无法了解您在与谁打交道,只能了解来回传输的数据。
实现您的要求:
#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
我想知道哪个应用程序调用共享扩展来将图像共享到我的应用程序(它的 bundleId 或 appName)。但是我找不到办法。 NSExtensionContext 中有 none 个关于源应用程序的信息。如果有任何帮助,我将不胜感激。
您的包 ID 通常是 com.yourcompany/yourname.yourappname
如果您不知道 Xcode 的公司名称,请创建一个新项目,提示您输入应用程序名称的屏幕将显示您的公司名称。
你也可以这样做,
在 Xcode 中,select 您的项目,然后是您的目标(您应该只有一个),然后是 'Info' 选项卡。您应该能够在那里看到包标识符。
这个问题的答案可以在这里找到:
How to get bundle ID?
您无法找出托管您的扩展程序的应用程序。那不是扩展系统的一部分。您可以了解应用程序传递给您的数据类型,并且通过操作扩展,您可以获得 return 一些数据。但是您无法了解您在与谁打交道,只能了解来回传输的数据。
实现您的要求:
#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