Запускаете Facetime из своего приложения?

Я вижу, что вы можете запускать FaceTime из своего приложения через

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"facetime://tel-number"]];

Я также читаю, что, поскольку официально общедоступного API FaceTime нет, Apple откажет вам.

Кто-нибудь знает, правдивы ли эти разговоры об отказе? PAIR имеет эту функцию, и они никогда не были отклонены.


person jdog    schedule 07.12.2012    source источник
comment
С чего вы взяли, что его отклонят?   -  person woz    schedule 07.12.2012
comment
Пожалуйста, поделитесь ссылкой, которая говорит, что приложение будет отклонено. Не слышал об этом.   -  person iDev    schedule 07.12.2012
comment
Если вам могут отказать за это, то зачем Apple создавать URL-схему для FaceTime?   -  person Mick MacCallum    schedule 07.12.2012


Ответы (5)


Теперь это задокументировано и законно: https://developer.apple.com/library/ios/featuredarticles/iPhoneURLScheme_Reference/FacetimeLinks/FacetimeLinks.html#//apple_ref/doc/uid/TP40007899-CH2-SW1

person jwilkey    schedule 04.01.2014

Мое приложение было отклонено за использование URL-адреса FaceTime. Это часть ответа, которую я получил от Apple в центре разрешений.

Мы обнаружили в вашем приложении следующие непубличные API: В частности, ваше приложение использует схему URL-адресов FaceTime, которая не задокументирована.

Если в исходном коде вы определили методы с теми же именами, что и у вышеупомянутых API, мы предлагаем изменить имена ваших методов, чтобы они больше не конфликтовали с частными API Apple, чтобы ваше приложение не помечалось при отправке в будущем.

Это было обновление предыдущей версии. Первую версию приняли без проблем. Теперь обновление было отклонено по вышеуказанной причине. Кажется, теперь мне нужно опубликовать приложение без FaceTime.

Изменить:

Теперь разрешено использовать URL-адрес FaceTime в сторонних приложениях.

person iAmd    schedule 13.03.2013

Как правило, если вы используете недокументированные вызовы API и Apple вас поймает, они отклонят вашу заявку. Причина в том, что они могут изменить вызов API, который вы используете в новых обновлениях IOS, и, таким образом, привести к сбою вашего приложения или неправильной работе. Вы можете попробовать и отправить, используя недокументированный API, и надеяться, что Apple пропустит его, но, как я уже сказал, вы рискуете, что Apple изменит этот вызов API или полностью удалит его из ОС в будущем.

person Kris Gellci    schedule 07.12.2012
comment
Метод openURL: не является недокументированным. - person woz; 07.12.2012
comment
Я знаю, что openURL задокументирован, но, согласно документации, схема URL-адресов FaceTime отсутствует, проверьте документацию по этой ссылке для получения приемлемых схем URL-адресов, предоставленных Apple: developer.apple.com/library/ios/#featuredarticles/ - person Kris Gellci; 07.12.2012
comment
Это правда, но Facebook тоже не упоминается, и многие опубликованные приложения открывают Facebook. Я думаю, что документация просто разъясняет варианты параметризации ваших ссылок, а не исключительно документирует допустимое использование openURL:. - person woz; 07.12.2012

Я не вижу никаких причин, по которым это может быть отклонено, особенно если уже есть приложение, использующее эту функцию. Руководство по проверке App Store — лучший способ определить, будет ли ваше приложение быть отклоненным, и я не вижу там ничего, что применимо к вашей ситуации.

Конечно, Apple может делать все, что хочет, поэтому единственный способ быть абсолютно уверенным, что он будет принят, — это отправить его, но я очень сомневаюсь, что у вас возникнут проблемы.

person woz    schedule 07.12.2012
comment
Бывают отказы из-за использования недокументированной схемы URL-адресов FaceTime. - person pre; 08.10.2013

Официально вы можете использовать строки URL-адреса собственного приложения для видеозвонков FaceTime:

facetime:// 14085551234
facetime://[email protected]

Пожалуйста, перейдите по ссылке: https://developer.apple.com/library/archive/featuredarticles/iPhoneURLScheme_Reference/FacetimeLinks/FacetimeLinks.html

Хотя эта функция поддерживается на всех устройствах, вам придется немного изменить код для iOS 10.0 и выше, так как openURL(_:) устарел.

https://developer.apple.com/documentation/uikit/uiapplication/1622961-openurl?language=objc

Пожалуйста, обратитесь к приведенному ниже коду для текущего и резервного механизма, чтобы он не был отклонен Appstore.

      -(void) callFaceTime : (NSString *) contactNumber
      {
          NSURL *URL = [NSURL URLWithString:[NSString 
              stringWithFormat:@"facetime://%@",  contactNumber]];
        if (@available(iOS 10.0, *)) {
              [[UIApplication sharedApplication] openURL:URL options:@{} 
            completionHandler:^(BOOL success)
            {
              if (success)
            {
                NSLog(@"inside success");
            }
             else
            {
               NSLog(@"error");
             }
          }];
       } 
       else {
       // Fallback on earlier versions

             NSString *faceTimeUrlScheme = [@"facetime://" 
         stringByAppendingString:contactNumber];
        NSURL    *facetimeURL       = [NSURL URLWithString:faceTimeUrlScheme];

    // Facetime is available or not
        if ([[UIApplication sharedApplication] canOpenURL:facetimeURL])
        {
            [[UIApplication sharedApplication] openURL:facetimeURL];
        }
         else
        {
           // Facetime not available
           NSLog(@"Facetime not available");
        }   
    }
  }

в contactNumber либо передать номер телефона, либо appleid.

   NSString *phoneNumber = @"9999999999";
   NSString *appleId = @"[email protected]";
   [self callFaceTime:appleId];

objective-c ios

person Shrikant Phadke    schedule 22.04.2020