UIWebView - 4

来源:互联网 发布:手机做题软件 编辑:程序博客网 时间:2024/06/14 14:16
UIWebView还提供了强大的与服务器交互的方法,提供了操作JS的接口:
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType;

我们可以通过回调获取,服务器回调的地址:

NSString* urlStr = [[request URL] absoluteString];

并通过字符操作操作,获取想要的标识符号:


有两个比较好的方式:

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{    NSArray* substrs = [urlStr componentsSeparatedByString:@"://"];    NSInteger  value = [self switchFromIdentifier:[substrs objectAtIndex:0]];        switch (value){                    case 1:{            // do sth about 1.        }            break;                    case 2:{            // do sth about 2.        }            break;        case 3:{            // do sth about 3.        }            break;        default            break;}



- (NSInteger )switchFromIdentifier:(NSString *)urlStr{    NSInteger value = 0;    if ([urlStr isEqualToString:@"identifier1"]){        value = 1;      }else if ([urlStr isEqualToString:@"identifier2"]){        value = 2;      }else if ([urlStr isEqualToString:@"identifier3"]){        value = 3;     }else if ([urlStr isEqualToString:@"identifier4"]){        value = 4;    }    return value;}


还有直接和服务器协商用字段作为操作名:

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {    // 说明协议头是ios    if ([@"ios" isEqualToString:request.URL.scheme]) {        NSString *url = request.URL.absoluteString;        NSRange range = [url rangeOfString:@":"];        NSString *method = [request.URL.absoluteString substringFromIndex:range.location + 1];                SEL selector = NSSelectorFromString(method);                if ([self respondsToSelector:selector]) {            [self performSelector:selector];        }                return NO;    }        return YES;}#pragma mark - 提供一个接口方法给JS调用- (void)openCamera {    NSLog(@"打开了照相机");}- (void)call {    NSLog(@"打电话");}#pragma mark - 按钮方法#pragma mark 前进- (void)forawrd {    [self.webView goForward];}#pragma mark 后退- (void)back {    [self.webView goBack];}

对的,UIWebView还提供了一些直接的操作返回前进前后页面等其他操作:

- (void)goBack;- (void)goForward;



参考:

http://blog.csdn.net/zhaoweixing1989/article/details/13021513

http://www.cnblogs.com/gcb999/p/3178728.html

0 0
原创粉丝点击