Внутреннее использование схемы URL с UIWebView для изменения UILabel - PullRequest
3 голосов
/ 20 января 2011

У меня есть UIWebView, который отображает пару экранов в UINavigationController:

First View > Second View > View with UIWebView + UILabel

Теперь я отображаю определенную страницу в этом веб-представлении, которая имеет ссылку на мое приложение....

myapp://foofoo

Я знаю, что вы можете настроить пользовательский URL с помощью (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url и некоторого разбора info.plist, но как изменить UILabel, который является тем же экраном, что и UIWebView, простонажав на ссылку myapp: // foofoo?

Ответы [ 2 ]

4 голосов
/ 12 мая 2011
-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
    NSLog(@"scheme = %@",[[request URL] scheme]);

    if([[[request URL] scheme]isEqualToString:@"myscheme"])
    {
        [messageLabel setText:@"HELLO!"];
        return NO;
    }
    else return YES;
}

Убедитесь, что ваш контроллер представления соответствует протоколу UIWebViewDelegate, чтобы это работало.

4 голосов
/ 20 января 2011

Лучший способ сделать это - использовать пользовательскую ссылку, а затем использовать метод делегата UIWebView -webView: shouldStartLoadWithRequest: navigationType: для перехвата запросов.Когда вы видите, что поступил запрос с вашей ссылкой в ​​нем, вы знаете, что ваше действие было инициировано.

UIWebView Предоставляет Цель C для JavaScript

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...