Applinks iOS URL-навигация

Я пытаюсь создать приложение, которое использует ссылки приложений. То есть я хочу переходить на другие приложения iOS из своего собственного. Я установил каркас болта и использую [BFAppLinkNavigation navigateToURLInBackground:url];для перехода на веб-страницы. Кажется, я не могу напрямую связать приложение, установленное на моем телефоне. Я считаю, что это потому, что я не знаю, что текущий URL для передачи.

Если бы кто-нибудь мог посоветовать, где найти URL-адреса, которые приведут меня к приложениям, использующим AppLinks, это было бы очень полезно.

Заранее спасибо!

2 ответа

Это выглядит так:

NSString *html = [self htmlWithMetaTags:@[
                                          @{
                                              @"al:ios": [NSNull null],
                                              @"al:ios:url": @"bolts://",
                                              @"al:ios:app_name": @"Bolts",
                                              @"al:ios:app_store_id": @"12345"
                                              }
                                          ]];
NSURL *url = [self dataUrlForHtml:html];

[BFAppLinkNavigation navigateToURLInBackground:url];

И все еще нужны три пользовательских функции ниже:

- (NSString *)htmlWithMetaTags:(NSArray *)tags {
    NSMutableString *html = [NSMutableString stringWithString:@"<html><head>"];

    for (NSDictionary *dict in tags) {
        for (NSString *key in dict) {
            if (dict[key] == [NSNull null]) {
                [html appendFormat:@"<meta property=\"%@\">", key];
            } else {
                [html appendFormat:@"<meta property=\"%@\" content=\"%@\">", key, dict[key]];
            }
        }
    }

    [html appendString:@"</head><body>Hello, world!</body></html>"];
    NSLog(@"html:%@",html);
    return html;
}

- (NSURL *)dataUrlForHtml:(NSString *)html {
    NSString *encoded = [self stringByEscapingQueryString:html];
    NSString *urlString = [NSString stringWithFormat:@"data:text/html,%@", encoded];
    return [NSURL URLWithString:urlString];
}

- (NSString *)stringByEscapingQueryString:(NSString *)string {
    return (NSString *)CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(NULL,(CFStringRef)string,NULL,(CFStringRef)@":/?#[]@!$&'()*+,;=",kCFStringEncodingUTF8));
}

Вы можете найти все выше в BoltsTests. http://applinks.org/documentation/

Это может быть достигнуто путем реализации схемы URL в вашем приложении, и для этого также необходимо, чтобы другое приложение, в котором вы хотите перемещаться, имело такую ​​реализацию, и вы можете увидеть ту же инструкцию в ссылке ниже.

Ссылка: http://code.tutsplus.com/tutorials/ios-sdk-working-with-url-schemes--mobile-6629

Другие вопросы по тегам