目标:
大型学校的霍尔显示器可以扫描学生的ID,并且很容易在PowerSchool中输入延迟的信息。
限制:
由于法律限制,-I无法访问PowerSchool
-无法将ID作为参数传递到URL中,因为数据库ID与学生ID不同。我可以获得一个列表,但随着新学生的获得和其他一切,这将很难维护。
我的想法:
创建一个应用程序,扫描条形码,将学生ID复制到剪贴板,立即打开一个WebView,让用户登录,他们可以点击和保持,将ID粘贴到用户查找字段中。
然而,这是非常低效的,也是最后的手段。考虑到我的极端限制,有什么办法来改善这一点吗?
提前谢了。
发布于 2015-07-28 19:25:12
拉一个条形码相当简单。我认为打开webview可能是正确的,但根据URL结构,您甚至可以修改html主体,以便将扫描的条形码自动输入到必要的字段中。
我能想到的3种选择:
1)您正在加载的网页,它是否还记得以前使用过的cookie登录?如果它使用一个自动填充字段,则在加载webview之前修改保存的cookie。
2)如果没有使用cookie,查看页面加载完成后是否可以填充表单
3)这是最雄心勃勃的。如果您知道表单使用的结构,并且不需要学生输入密码,请发送表单数据,而不是打开登录页。下面是使用Paypal手动填充和发送表单的示例:
NSMutableURLRequest *urlRequest = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:@"https://mobile.paypal.com/cgi-bin/webscr"]];
NSString *body = [NSString stringWithFormat:@"cmd=_xclick&business=paypal@example.com&image_url=https://example.com/logo.jpg&no_shipping=2&no_note=1&amount=%1.2f¤cy_code=USD¬ify_url=https://example.com/paypalipn.cfm&return=http://example.com/", [self.orderAmount floatValue]];
[urlRequest setHTTPMethod:@"POST"];
[urlRequest setHTTPBody:[body dataUsingEncoding:NSUTF8StringEncoding]];
self.webView.delegate = self;
[self.webView loadRequest:urlRequest];当然,这意味着您必须在页面中剖析标志,并提取表单URL和数据格式,但这将有助于最终使霍尔监视器更容易使用。
发布于 2015-07-28 18:55:46
如果没有实际访问您想要使用的数据库的权限,并且ID的不同,除了使用条形码扫描仪并将其复制到剪贴板上的建议之外,似乎没有其他方法了。
发布于 2015-07-28 19:05:07
您的应用程序应该能够模仿用户在浏览器中所做的事情。您可能需要捕获来自您的手机的web请求和从PowerSchool服务器发送的响应,以准确分析登录、搜索和报告过程中发生的事情。
诚然,这将是一个非常“脆弱”的解决方案,可能会受到服务器意外更改引起的问题的影响。
https://stackoverflow.com/questions/31201429
复制相似问题