从您的应用程序启动Facetime?

时间:2012-12-07 18:25:47

标签: objective-c ios facetime

我发现您可以通过

从您的应用启动FaceTime
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"facetime://tel-number"]];

我也在阅读,因为没有正式公开的FaceTime API苹果会拒绝你。

有人知道这种拒绝谈话是否属实? PAIR具有此功能,但从未被拒绝过。

5 个答案:

答案 0 :(得分:14)

答案 1 :(得分:5)

我的应用因使用FaceTime网址而被拒绝。这是我在Apple决议中心得到的回应的一部分。

  

我们在您的应用中发现了以下非公开API:具体来说,   您的应用使用FaceTime URL方案,该方案未记录。

     

如果您在源代码中定义了与其名称相同的方法   上面提到的API,我们建议改变你的方法名称   他们不再与Apple的私人API发生冲突,以避免你的   申请在未来的提交中被标记。

这是之前版本的更新。第一个版本被接受没有任何问题。由于上述原因,现在更新已被拒绝。似乎我现在必须在没有FaceTime的情况下发布应用程序。

修改

现在,在第三方应用中使用FaceTime网址是合法的。

答案 2 :(得分:1)

作为一般规则,如果您使用未记录的API调用并且Apple抓住了您,他们将拒绝您的应用程序。原因是它们可能会更改您在新的IOS更新中使用的API调用,从而导致应用程序崩溃或无法正常工作。您可以尝试使用未记录的API进行提交,并希望苹果能够通过,但正如我所说,您冒着Apple改变此api调用或将来从操作系统中完全删除它的风险。

答案 3 :(得分:1)

我认为没有任何理由会被拒绝,特别是如果已经有一个使用此功能的应用程序。 App Store Review Guidelines是确定您的应用是否会被拒绝的最佳方式,而且我看不到任何适合您情况的内容。

当然,Apple可以做任何他们想做的事情,所以绝对肯定它会被接受的唯一方法就是提交它,但我非常怀疑你会遇到问题。

答案 4 :(得分:0)

可以在FaceTime视频通话中使用本机应用URL字符串是官方的

facetime:// 14085551234
facetime://user@example.com

请参考链接:https://developer.apple.com/library/archive/featuredarticles/iPhoneURLScheme_Reference/FacetimeLinks/FacetimeLinks.html

尽管所有设备都支持此功能,但由于openURL:已过时,您必须为iOS 10.0及更高版本稍作更改代码。

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中的通过电话号码或小程序。

   NSString *phoneNumber = @"9999999999";
   NSString *appleId = @"abc@gmail.com";
   [self callFaceTime:appleId];