在日本呆了几个月了!没其他收获,仅仅对sfdc了解一些!国内针对这方面的材料略少,以下仅供参考!
salesforce login
//set login message
[SFLogger setLogLevel:SFLogLevelDebug];
[SFAccountManager setLoginHost:mm];
[SFAccountManager setClientId:mm];
//read the login message from setting.boundle
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *appVersion = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"];
if (![defaults stringForKey:appVersion]) {
[NSUserDefaults resetStandardUserDefaults];
[defaults setObject:[NSNumber numberWithInt:1] forKey:appVersion];
[defaults setObject:@"" forKey:@""];
[defaults synchronize];
}
NSString *host = [defaults stringForKey:@""];
if ([host isEqualToString:@""]) {
[SFAccountManager setLoginHost:@""];
}else{
[SFAccountManager setLoginHost:host];
}
NSLog(@"%@",[defaults dictionaryRepresentation]);
BOOL isProductionEnvironment = [host isEqualToString:@" "]?TRUE:
[@""
isEqualToString:[defaults stringForKey:@" "]];
if (isProductionEnvironment) {
[SFAccountManager setClientId:@""];
} else {
[SFAccountManager setClientId:@""];
}
[SFAccountManager setRedirectUri:@"sfdc://success"];
[SFAccountManager setScopes:[NSSet setWithObjects:@"full", nil]];
//add the notifacation in the logout and logchanged
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(logoutInitiated:)
name:kSFUserLogoutNotification
object:[SFAuthenticationManager sharedManager]];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(loginHostChanged:)
name:kSFLoginHostChangedNotification
object:[SFAuthenticationManager sharedManager]];
- (UIViewController *)getLoginViewController:(GECJAuthenticationManager *)manager
{
deferred = [OMDeferred deferred];
[[SFAuthenticationManager sharedManager] loginWithCompletion:^(SFOAuthInfo *info) {
[manager login:nil];
[deferred fulfil:info];
}
failure:^(SFOAuthInfo *info, NSError *error) {
[deferred fail:error];
}];
return nil;
}
- (OMPromise*)loginWithPrincipals:(NSDictionary *)principals
{
return deferred.promise;
}
- (void)logoutInitiated:(NSNotification *)notification
{
// [[SFAuthenticationManager sharedManager] loginWithCompletion:self.initialLoginSuccessBlock
// failure:self.initialLoginFailureBlock];
}
- (void)loginHostChanged:(NSNotification *)notification
{
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[[SFAuthenticationManager sharedManager] logout];
[SFAuthenticationManager removeAllCookies];
BOOL isProductionEnvironment = ([@""
isEqualToString:[defaults stringForKey:@""]]);
NSString *host = [defaults stringForKey:@""];
if ([host isEqualToString:@""]) {
[SFAccountManager setLoginHost:@""];
}else{
[SFAccountManager setLoginHost:host];
}
[SFAccountManager updateLoginHost];
if (isProductionEnvironment) {
[SFAccountManager setClientId:@""];
} else {
[SFAccountManager setClientId:@""];
}
}
//load data
SFRestAPI *api = [SFRestAPI sharedInstance];
SFRestRequest* request = [api requestForQuery:query];
[api send:request delegate:self.delegate];