2016-02-10 4 views
0

У меня есть код, который открывает ссылку внутри webview в Safari, которая выглядит следующим образом.LaunchServices: ОШИБКА: Нет зарегистрированного обработчика для схемы URL applewebdata

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{ 


    if (navigationType == UIWebViewNavigationTypeLinkClicked){ 
     NSLog(@"%@", request); 
     NSURL *url = request.URL; 
     [[UIApplication sharedApplication] openURL:url]; 
    } 

    return YES; 

} 

Однако, когда я нажимаю на ссылку, он показывает ошибку

LaunchServices: ERROR: There is no registered handler for URL scheme applewebdata

Среда IOS 9. Есть ли некоторые настройки в PLIST мне нужно изменить?

+0

Если у вас была аналогичная проблема, в моем случае это было связано с отсутствием URL-адреса «http: //» в начале. – alasker

ответ

0

Вот как я установил вопрос:

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{ 


if (navigationType == UIWebViewNavigationTypeLinkClicked){ 

    NSString *requestURLString = request.URL.absoluteString; 
    NSString *trimmedRequestURLString = [requestURLString stringByReplacingOccurrencesOfString:@"^(?:applewebdata://[0-9A-Z-]*/?)" withString:@"" options:NSRegularExpressionSearch range:NSMakeRange(0, requestURLString.length)]; 

    trimmedRequestURLString = [trimmedRequestURLString stringByReplacingOccurrencesOfString:@"%22" withString:@""]; 

    NSLog(@"%@", trimmedRequestURLString); 
    NSURL *url = [NSURL URLWithString:trimmedRequestURLString]; 
    NSLog(@"%@", url); 
    [[UIApplication sharedApplication] openURL:url]; 
} 

return YES; 
} 

Просто манипулируя строку URL, чтобы иметь только простой формат URL не applewebdata и работал.

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