如何以编程方式隐藏状态栏中的“<回到Safari”?
当我从我的应用程序中退出时,如果用户想要使用其Facebook帐户登录,则在我的应用程序中收到此消息。
以下是我不喜欢(想要)在我的应用程序中出现“回到Safari”的情况:
- 首次启动应用程序(且用户未登录)。
- 用户选择使用Facebook选项登录。
- Facebook iOS SDK出现,将我带到Safari。
- 我登录并返回到应用程序
- 但是,“回到Safari”还在这里……它不应该再出现了。
如何以编程方式隐藏状态栏中的“<回到Safari”?
当我从我的应用程序中退出时,如果用户想要使用其Facebook帐户登录,则在我的应用程序中收到此消息。
以下是我不喜欢(想要)在我的应用程序中出现“回到Safari”的情况:
您可以通过转发到一个带有返回到您的应用程序的网站来实现此目的。以下步骤允许您隐藏状态栏中的“返回Safari”,MyApp是示例应用程序名称:
将您的应用程序URL Scheme添加到Info.plist中
<key>LSApplicationQueriesSchemes</key>
<array>
<string>myapp</string>
</array>
在网站上设置自定义URL转发(例如http://example.com/myapp)
_redirect_rule_from /myapp
_redirect_rule_to myapp://
在授权方法闭包中,访问您在步骤2中创建的转发
- (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];
}
};
}];
}