Какао-приложение обрабатывает стандартную HTTP-схему URL - PullRequest
0 голосов
/ 24 сентября 2010

Мне нужно обработать HTTP-URL, которые начинаются с определенного домена с моим приложением, потому что оно указывает на источник REST.Однако веб-служба не находится под моим контролем, поэтому я не могу легко представить собственную схему URL для открытия ссылок с моим приложением.

Есть ли способ перехватывать и обрабатывать такие URL-адреса в приложении Какао?

Пример: http://static.domain.name/some/random/path

Мое приложение должно обрабатывать все ссылки, указывающие на http://static.domain.name

Боюсь, что ответ будет НЕТ, но, эй, все так и естьвозможно как-то:).

Обновление


Это код расширения Safari, который я использовал, чтобы заставить его работать (контент в <> заменен вашим материалом)

var allLinks = document.links;
for (var i=0; i<allLinks.length; i++) {
    var link = allLinks[i];
    if (/.*<match>.*/.test(link.href)) {
        var rewrite = link.href.replace(/<match>/, "<customscheme>://");
        link.href = rewrite;
        console.log("Rewrote: " + rewrite);
    }
}

1 Ответ

1 голос
/ 24 сентября 2010

Просто закодируйте весь URL по вашей собственной схеме, например myscheme://http%3A//static.domain.name/some/random/path

Когда ваше приложение обрабатывает URL, просто отрежьте первую часть и удалите ее:

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
    NSString * urlString = [url description];
    // Remove your scheme
    urlString = [urlString stringByReplacingOccurrencesOfString:@"myscheme://" withString: @""];
    // Unescape
    urlString = [urlString stringByReplacingPercentEscapesUsingEncoding: NSASCIIStringEncoding];
    // Do something with urlString
    return YES;
}

Но нет. Вы не можете быть назначены для обработки http://

...