尽管存在限制,我如何实施此应用程序?

时间:2015-07-03 07:49:26

标签: ios iphone swift ipad powerschool

目标:

大型学校的大厅监控器可以扫描学生ID,并在PowerSchool中轻松输入迟到的信息。

限制:

- 由于法律限制,我无法访问PowerSchool

- 无法将ID作为参数传递到URL中,因为数据库ID与学生ID不同。我可以获得一份清单,但是通过收购新学生和一切,这将很难维持。

我的想法:

创建一个扫描条形码的应用程序,将学生ID复制到剪贴板,立即打开WebView以让用户登录,然后他们可以点击并按住将ID粘贴到用户查找字段中。

然而,这是非常低效的,也是最后的手段。鉴于我的极端限制,有没有办法改善这个?

非常感谢。

3 个答案:

答案 0 :(得分:2)

拉入条形码非常简单。我认为你打开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&currency_code=USD&notify_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和数据格式,但这应该有助于最终在大厅监视器上更容易。

答案 1 :(得分:1)

如果没有实际访问您想要使用的数据库并且ID不同,那么除了您对条形码扫描器的建议并将其复制到剪贴板之外,似乎没有别的办法。

答案 2 :(得分:1)

您的应用应该能够模拟用户在浏览器中执行的操作。您可能需要捕获来自手机的网络请求以及从PowerSchool服务器发送的响应,以准确分析登录,搜索和报告期间发生的情况。

诚然,这将是一个非常脆弱的"解决方案,受服务器意外更改引起的问题。