2015-02-11 2 views
0

Я хочу знать, какое приложение вызывает расширение общего доступа для совместного использования образа в моем приложении (его bundleId или appName). Но я не нашел возможности сделать это. Информация о исходном приложении в NSExtensionContext отсутствует. Я был бы очень признателен за любую помощь.Как получить bundleId исходного приложения при использовании расширения общего доступа в IOS8

ответ

3

Вы не можете узнать, что приложение хостинг для вашего расширения. Это не часть системы расширения. Вы узнаете, какие данные передают вам приложение, и с расширениями действий вы можете вернуть некоторые данные. Но вы не узнаете, с кем имеете дело, только то, что данные идут туда и обратно.

-1

Вашего расслоение ID обычно com.yourcompany/yourname.yourappname

Если вы не знаете, что Xcode имеет свое имя компании, создать новый проект и экран, запрашивающий ваше имя приложения будет иметь название вашей компании.

Кроме того, вы можете сделать это,

В Xcode, выберите проект, то ваши цели (вы должны иметь только один), а затем вкладку «Info». Вы должны иметь возможность видеть идентификатор пакета.

Ответ на этот вопрос можно найти здесь:

How to get bundle ID?

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

Где '_hostBundleID' официально задокументированы? – Pang