有没有办法隐藏"回到Safari"从iOS9的状态栏?

时间:2015-07-06 13:57:20

标签: ios mobile-safari ios9 uistatusbar applinks

如何隐藏此<以编程方式从状态栏返回Safari?

enter image description here

我在我的应用中收到它 - 因为如果用户想要使用他们的Facebook帐户登录,我会从我的应用程序中退出。

这是我不喜欢(想要)的场景"回到Safari"在我的应用程序中。

  1. 首次启动应用程序(用户未登录)。
  2. 用户选择使用Facebook登录选项。
  3. Facebook iOS SDK出现在图片中,它带我进入Safari。
  4. 我已登录并返回应用
  5. 但是,有"回到Safari" ......它不应该再在这里了。

2 个答案:

答案 0 :(得分:4)

不,没有API可以让你这样做。

答案 1 :(得分:0)

您可以通过转发到转发回应用的网站来实现此目的。以下步骤可让您隐藏“返回Safari”。在状态栏中,MyApp是示例应用程序名称:

  1. 将您的应用程序URL方案添加到Info.plist

    _redirect_rule_from /myapp
    _redirect_rule_to myapp://
    
  2. 在网站上设置自定义网址(例如http://example.com/myapp

    - (void)willLoginWithFacebook
    {
       __weak __typeof(self) weakSelf = self;
    
       [self.view setUserInteractionEnabled:NO];
       [self.sessionManager authenticateViaFacebookWithCompletion:^(NSString *token, NSSet *grantedPermissions,
        NSError *error) {
    
    if (error) {
        if (error.code != myappErrorCodeCancelled) {
            [weakSelf.rootViewController presentError:error];
        }
    }
    else {
        [weakSelf authorizeWithFacebookToken:token];
        NSString *customURL = @"myapp://";
    
        if ([[UIApplication sharedApplication]
             canOpenURL:[NSURL URLWithString:customURL]])
        {
            NSString *stringURL = @"http://example.com/myapp";
            NSURL *url = [NSURL URLWithString:stringURL];
            [[UIApplication sharedApplication] openURL:url];
        }
        else
        {
            UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"URL error"
                                                            message:[NSString stringWithFormat:
                                                                     @"No custom URL defined for %@", customURL]
                                                           delegate:self cancelButtonTitle:@"Ok" 
                                                  otherButtonTitles:nil];
            [alert show];
        }
       };
    
     }];
    
    }
    
  3. 在您的授权方法中,关闭您在第2步中创建的转发

    npm version patch