Как перехватить пользовательскую схему URL из веб-просмотра? - PullRequest
3 голосов
/ 24 ноября 2011

В моем приложении есть веб-просмотр, который загружает страницу, которая содержит как обычные ссылки, так и пользовательские схемы URL, например myapp: //id=1234.

Сейчас я пытаюсь перехватить запрос в этой функции:

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

    NSLog(@"NSURLRequest = %@", [[request URL] absoluteString]);

}

Распечатка URL, как указано выше, дает мне следующее:

http://localhost:8888/myapp://id=1234

Моя настройка localhost на MAMP с пользовательским URL, добавленным к URL.

Я надеялся, что смогу использовать [схему запроса] напрямую, но в этом случае сейчас он просто возвращает «http». Есть ли способ, которым я могу обрабатывать пользовательские схемы URL из моего собственного приложения?

На данный момент я бы хотел сделать следующее:

  1. Пользователь в сети
  2. Пользователь нажимает на пользовательскую ссылку (myapp: // id = 1234)
  3. Мое приложение обрабатывает пользовательский URL и перенаправляет пользователя на другую страницу (http://www.someotherpage.com/?id=1234)

Спасибо!

Ответы [ 2 ]

0 голосов
/ 24 ноября 2011

Я полагаю, вы должны объявить любую пользовательскую схему URL, обработанную вашим приложением.

Проверить ссылку

0 голосов
/ 24 ноября 2011

Когда URL имеет двойную косую черту после двоеточия, как у вас, следующая часть должна выглядеть как userinfo@hostname:portuserinfo@, и :port могут быть опущены).Поскольку id=1234 не выглядит как имя хоста, анализатор URL не распознает ваш URL как абсолютный URL.Поэтому анализатор URL рассматривает его как относительный URL.

Попробуйте изменить синтаксис URL-адреса на myapp:id=1234 или myapp:///id=1234.

.
...