UIWebView和网页的交互(JS中调用OC代码)

来源:互联网 发布:淘宝的asus华硕旗舰店 编辑:程序博客网 时间:2024/05/01 13:02
UIWebView和网页的交互(JS中调用OC代码)
- (void)viewDidLoad
{
    [
superviewDidLoad];
   
// 1.webView
   
UIWebView *webView = [[UIWebViewalloc]init];
    webView.
frame= self.view.bounds;
    webView.delegate= self;
    [self.viewaddSubview:webView];
   
   
// 2.加载网页
   
NSURL *url = [[NSBundlemainBundle]URLForResource:@"test"withExtension:@"html"];
   
NSURLRequest *request = [NSURLRequestrequestWithURL:url];
    [webView
loadRequest:request];
}

// webView每当发送一个请求之前,都会先调用这个方法(能拦截所有请求)
- (
BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType
{
   
NSString *url = request.URL.absoluteString;
   
NSRange range = [urlrangeOfString:@"hm://"];
   
NSUInteger loc = range.location;
   
if (loc !=NSNotFound) {// url的协议头是hm
       
// 方法名
       
NSString *method = [urlsubstringFromIndex:loc + range.length];
       
// 转成SEL
       
SEL sel =NSSelectorFromString(method);
        [
selfperformSelector:selwithObject:nil];
    }
   
return YES;
}

注意:
1.[webView loadRequest:request];
loadRequest方法,会从网络上加载页面到UIWebView里面。
2.如果JS中调用OC代码,要实现UIWebViewshouldStartLoadWithRequest这个代理方法。
3.request.URL.absoluteString获取URL的绝对路径
4.rangeOfString判断某一个字符串是否在url中。
5.range.location获取第一次出现的位置


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 微信被永久封了怎么办 储蓄卡被冻结怎么办 百度云qq登录怎么办 微信发红包忘记密码怎么办 电脑wps表格打不开怎么办 电脑wps文字打不开怎么办 电脑的wps打不开怎么办 qq锁异地登录怎么办 手机玩游游戏太热怎么办 运动秀注册不了怎么办 应用卸载不掉怎么办 aweme卸载不掉怎么办 win10系统安装失败怎么办 英雄联盟自动更新失败怎么办 英雄联盟老出错怎么办? lol下载0kb怎么办 手机md5校验失败怎么办 王者荣耀占内存怎么办 信用卡被暂停使用怎么办 宝宝爱涂鸦怎么办呢 大良老板欠薪怎么办 投影仪流明很低怎么办 户外涂鸦没有墙怎么办 word突然未响应怎么办 文档突然未响应怎么办 pr不自己播放怎么办 笔记本电脑空格键打字失灵怎么办 小孩受凉打喷嚏流鼻涕怎么办 头疼打喷嚏流鼻涕鼻塞怎么办 头疼打喷嚏想吐怎么办 感冒鼻塞头疼打喷嚏怎么办 孕期打喷嚏漏尿怎么办 孕妇打喷嚏漏尿怎么办 打喷嚏停不下来怎么办 鼻炎不停的打喷嚏怎么办 感冒了鼻子痒怎么办 怀孕鼻炎严重了怎么办 鼻炎不停打喷嚏流鼻涕怎么办 鼻子里面干痒怎么办 有鼻炎老打喷嚏怎么办 鼻子喷嚏打不停怎么办