10

我看到您可以通过以下方式从您的应用程序启动 FaceTime

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

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

有谁知道这个拒绝谈话是否属实?PAIR 有这个功能,他们从来没有被拒绝过。

4

5 回答 5

5

我的应用因使用 FaceTime 网址而被拒绝。这是我在解决中心从 Apple 收到的部分回复。

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

如果您在源代码中定义了与上述 API 同名的方法,我们建议您更改方法名称,以便它们不再与 Apple 的私有 API 冲突,以避免您的应用程序在以后的提交中被标记。

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

编辑:

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

于 2013-03-13T12:10:04.430 回答
1

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

于 2012-12-07T18:31:00.847 回答
1

我看不出有什么理由会被拒绝,特别是如果已经有一个应用程序使用了这个功能。App Store Review Guidelines是确定您的应用程序是否会被拒绝的最佳方法,我没有看到任何适用于您的情况的内容。

当然,Apple 可以为所欲为,所以唯一确定它会被接受的方法就是提交它,但我非常怀疑你会遇到问题。

于 2012-12-07T18:39:49.287 回答
0

官方可以使用原生应用 URL 字符串进行 FaceTime 视频通话:

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

请参考链接: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 = @"abc@gmail.com";
   [self callFaceTime:appleId];

于 2020-04-22T17:27:39.640 回答