OC JS交互(通常情况下,如果网页写得正规的话,是可以正常交互的,之前就遇到后台写h5始终拿不到事件,元素也拿不到,更别说交互了,真是奇了怪了)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了OC JS交互(通常情况下,如果网页写得正规的话,是可以正常交互的,之前就遇到后台写h5始终拿不到事件,元素也拿不到,更别说交互了,真是奇了怪了),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2603字,纯文字阅读大概需要4分钟。
内容图文
![OC JS交互(通常情况下,如果网页写得正规的话,是可以正常交互的,之前就遇到后台写h5始终拿不到事件,元素也拿不到,更别说交互了,真是奇了怪了)](/upload/InfoBanner/zyjiaocheng/1087/bd3e1d2aa7f34b3292f0870f1dea7e69.jpg)
自动填充表单
@" document.getElementById(‘loginid‘).value = ‘这里填入你的用户名‘;document.getElementById(‘userpassword‘).value = ‘这里填入你的密码‘; ";
根据ID拿到输入用户名的输入框并给值
根据ID拿到输入密码的输入框并给值
自动点击登录按钮
@" document.getElementById(‘login‘).click() "
根据ID获取登录按钮这个元素,并调用其点击事件click()
如果有特别限制的话,我们需要先访问一次特定网址,并存入cookie
NSURL * cookieHost = [NSURL URLWithString:@"http://mmmmmm/login/Login.jsp"]; NSHTTPCookie * cookie = [NSHTTPCookie cookieWithProperties: [NSDictionary dictionaryWithObjectsAndKeys: [cookieHost host],NSHTTPCookieDomain, [cookieHost path],NSHTTPCookiePath, @"COOKIE_NAME",NSHTTPCookieName, @"COOKIE_VALUE",NSHTTPCookieValue,nil]]; [[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookie];
退出登录里为了,不受其他干扰,要清掉cookie
NSHTTPCookieStorage * myCookie = [NSHTTPCookieStorage sharedHTTPCookieStorage]; for (NSHTTPCookie * cookie in [myCookie cookies]) { [[NSHTTPCookieStorage sharedHTTPCookieStorage] deleteCookie:cookie]; } NSString * path = NSHomeDirectory(); NSString * filePath = [path stringByAppendingPathComponent:@"/Library/Cookies/Cookies.binarycookies"]; NSFileManager * manager = [NSFileManager defaultManager]; [manager removeItemAtPath:filePath error:nil];
开始发起请求,附带上cookie去请求,伪装成特定User-Agent,referer等
NSURL * url = [NSURL URLWithString:@"http://mmmmm/login/Login.jsp"]; NSMutableURLRequest * request = [NSMutableURLRequest requestWithURL:url]; NSArray * cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies]; NSDictionary * headers = [NSHTTPCookie requestHeaderFieldsWithCookies:cookies]; [request setValue:@"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.98 Safari/537.36" forHTTPHeaderField:@"User-Agent"]; [request setValue:@"http://mmmmmm" forHTTPHeaderField:@"Origin"]; [request setValue:@"http://mmmmm/login/Login.jsp" forHTTPHeaderField:@"Referer"]; [request setHTTPMethod:@"GET"]; [request setHTTPShouldHandleCookies:YES]; [request setAllHTTPHeaderFields:headers];
如果要求在特定的网络环境下才能访问网址,就得处理判断了,当然这种情况下,只能受限了
NSString *ipString = [self deviceIPAdress][@"en1/ipv4"]; ipString = ipString ? ipString : [ self deviceIPAdress][@"en0/ipv4"]; if ([self canLoadNetFrom:ipString]) { [self.webView loadRequest:request]; } else { [SVProgressHUD showErrorWithStatus:@"当前网络环境不支持登录"]; }
更新:要切换不同账户密码怎么办,重新写程序?这里用Settings.bundle
然后直接用偏好去取就是了
NSUserDefaults *user = [NSUserDefaults standardUserDefaults]; NSString *accout = [user stringForKey:@"name_preference"]; NSString *psd = [user stringForKey:@"psd_preference"];
原文:http://www.cnblogs.com/songxing10000/p/6074511.html
内容总结
以上是互联网集市为您收集整理的OC JS交互(通常情况下,如果网页写得正规的话,是可以正常交互的,之前就遇到后台写h5始终拿不到事件,元素也拿不到,更别说交互了,真是奇了怪了)全部内容,希望文章能够帮你解决OC JS交互(通常情况下,如果网页写得正规的话,是可以正常交互的,之前就遇到后台写h5始终拿不到事件,元素也拿不到,更别说交互了,真是奇了怪了)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。