[英]Launch device twitter settings from objective-c iOS 9
如何使用Objective-C在我的應用中啟動設備上的Twitter設置?
我正在開發一個在Twitter上共享鏈接的應用程序,我正在使用SLComposeViewController且可以正常使用,但是當未安裝Twitter應用程序且未在設置上配置任何Twitter帳戶時,它什么也不做。
我想顯示一個警報,邀請用戶登錄Twitter以便共享鏈接,當用戶點擊按鈕時,應用程序應在設備上啟動Twitter設置。
我一直在閱讀,因為iOS 5.1不允許使用這樣的url方案
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=TWITTER"]];
我讀到它僅被允許以此啟動您的應用程序設置:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
但是我在某些應用程序中發現它實際上會打開這樣的Twitter設置:
你知道怎么做嗎?
這是我用於SLComposeViewController的代碼:
- (IBAction)twitterAction:(id)sender {
UIActivityIndicatorView *activityView = [[UIActivityIndicatorView alloc]
initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
activityView.center=self.view.center;
[activityView startAnimating];
[self.view addSubview:activityView];
if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeTwitter]) {
SLComposeViewController *composerSheet = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeTwitter];
[composerSheet setInitialText:@"text to post"];
[composerSheet addURL:[NSURL URLWithString:@"http://urltoshare.com"]];
[composerSheet addImage:[UIImage imageNamed:@"postimage.JPG"]];
[composerSheet setCompletionHandler:^(SLComposeViewControllerResult result) {
[activityView stopAnimating];
switch (result) {
case SLComposeViewControllerResultCancelled:
NSLog(@"Post Canceled");
// some code ...
break;
case SLComposeViewControllerResultDone:
[self changeSharedStatus];
NSLog(@"Post Sucessful");
// some code ...
break;
default:
break;
}
}];
[self presentViewController:composerSheet animated:YES completion:nil];
}else {
/* code to show the alert that invites the user to open settings */
}
}
為什么找到的應用程序會打開Twitter設置,這是因為當您要求iOS“創建”推文時,如果iOS中沒有帳戶設置,iOS會在此Alertview中顯示您是否要進入該設置用於將Twitter帳戶添加到iOS。
因此,如果您調用SLComposeViewController,那么如果iOS中沒有Twitter帳戶,則代碼將觸發此Alertview:
SLComposeViewController *controllerSLC = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeTwitter];
[controllerSLC setInitialText:@"text"];
[self presentViewController:controllerSLC animated:YES completion:nil];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.