2016-03-04 3 views
0

canOpenURL: не удалось URL: «googlemail:» - ошибка: «Это приложение не разрешено запрашивать для схемы googlemail» это ошибка, которую я получаю после всей работы .. также добавлена ​​строка для информации. plist проекта.Ios Mailcore canopenurl

//Convert the image into data 
NSData *imageData = [NSData dataWithData:UIImagePNGRepresentation(self.emailimage)]; 
//Create a base64 string representation of the data using NSData+Base64 
NSString *base64String = [imageData base64EncodedString]; 

//userdefaults 
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]; 
// getting an NSString 
NSString *userName = [prefs stringForKey:@"username"]; 
NSString *password = [prefs stringForKey:@"password"]; 

//email operation strat 
MCOSMTPSession *smtpSession = [[MCOSMTPSession alloc] init]; 

smtpSession.hostname [email protected]"smtp.gmail.com"; 
// 
smtpSession.port = 465; 

smtpSession.username =userName; 
smtpSession.password =password; 
smtpSession.authType = MCOAuthTypeSASLPlain; 
smtpSession.connectionType =MCOConnectionTypeStartTLS; 

MCOMessageBuilder *builder = [[MCOMessageBuilder alloc] init]; 
MCOAddress *from1 = [MCOAddress addressWithDisplayName:@"" 
               mailbox:userName]; 
MCOAddress *to1 = [MCOAddress addressWithDisplayName:nil 
              mailbox:self.to.text]; 
[[builder header] setFrom:from1]; 
[[builder header] setTo:@[to1]]; 
[[builder header] setSubject:self.subject.text]; 
NSDate *now = [NSDate date]; 

double seconds1 = [now timeIntervalSince1970]; 
NSNumber *seconds = [NSNumber numberWithInteger:seconds1]; 
NSLog(@"id is=======================%@",seconds); 
AppDelegate *tokenD = [[UIApplication sharedApplication]delegate]; 
    NSLog(@"token in Composeviewcontroller %@",tokenD.Dtoken); 
NSString *htmlbody1; 


[builder setHTMLBody:htmlbody1]; 
MCOAttachment *attachment = [MCOAttachment attachmentWithContentsOfFile:self.filename]; 
[builder addAttachment:attachment]; 

NSData * rfc822Data = [builder data]; 


MCOSMTPSendOperation *sendOperation = 
[smtpSession sendOperationWithData:rfc822Data]; 
[sendOperation start:^(NSError *error) { 
    if(error) { 

     NSLog(@"Error sending email: %@", error); 
    } 

    else { 

     NSLog(@"Successfully sent email!"); 
    } 
}]; 

//coredata 

NSManagedObjectContext *context = [self managedObjectContext]; 

if (self.emailInfo) { 
    [self.emailInfo setValue:self.to.text forKey:@"email_to"]; 
    [self.emailInfo setValue:self.subject.text forKey:@"email_sub"]; 
    [self.emailInfo setValue:self.htmlbody.text forKey:@"email_body"]; 
    [self.emailInfo setValue:seconds forKey:@"email_id"]; 
    [self.emailInfo setValue:@"sent" forKey:@"status"]; 
    [self.emailInfo setValue:seconds forKey:@"email_id"]; 
} else { 

    NSManagedObject *newEmail = [NSEntityDescription insertNewObjectForEntityForName:@"EmailInfo" inManagedObjectContext:context]; 

    [newEmail setValue:self.to.text forKey:@"email_to"]; 
    [newEmail setValue:self.subject.text forKey:@"email_sub"]; 
    [newEmail setValue:self.htmlbody.text forKey:@"email_body"]; 
    [newEmail setValue:seconds forKey:@"email_id"]; 
    [newEmail setValue:@"sent" forKey:@"status"]; 
    [newEmail setValue:seconds forKey:@"email_time"]; 

} 


NSError *error = nil; 

if (![context save:&error]) { 
    NSLog(@"%@ %@", error, [error localizedDescription]); 
} 

[self.navigationController popViewControllerAnimated:YES]; 
// Fetching 



// Do any additional setup after loading the view. 
//[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"gamecenter:/me/account"]]; 
NSString *gmailurl = [NSString stringWithFormat:@"googlemail:"]; 
NSURL *openURL = [NSURL URLWithString:gmailurl]; 
// googlegmail:///co?to={email}&subject={subject}&body={body} 
if ([[UIApplication sharedApplication] canOpenURL:openURL]) { 
    [[UIApplication sharedApplication] openURL:openURL];// launch it 
} 

ответ

0

Вы можете детерминированным, если какой-либо вид применения устанавливается с помощью этого кода (просто заменить customURL очевидно в течение других приложений):

 NSString *customURL = @"googlegmail://"; 

     if ([[UIApplication sharedApplication] 
     canOpenURL:[NSURL URLWithString:customURL]]) 
     { 
      [[UIApplication sharedApplication] openURL:[NSURL URLWithString:customURL]]; 
     } 
     else 
     { 
      //not installed, show popup for a user or an error 
     } 
+0

im работает на симуляторе. значит, мне нужен googlemail на симуляторе? –

+0

@Faizan Да, вам нужно googlemail ... –

+0

скачано, но все равно получаю ту же самую ошибку даже на устройстве также –

0

Your library was compiled without bitcode, but the bitcode option is enabled in your project settings. Say NO to Enable Bitcode in your target Build Settings and the Library Build Settings to remove the warnings.

For those wondering if enabling bitcode is required:

Примечание: Для IOS приложений, является битовым кодом по умолчанию, но необязательно. Если вы предоставляете биткод, все приложения и фреймворки в комплекте приложений должны включать бит-код. Для приложений watchOS требуется биткод.

см SO

+0

все еще получаю ту же ошибку после отключения битового кода –

+0

им не получить любую ошибку, связанную с биткодом. –

+0

, так что ваша ошибка .. это сработало для меня по той же проблеме – viratpuar

 Смежные вопросы

  • Нет связанных вопросов^_^