2015-07-03 6 views
0

Цель:Как реализовать это приложение, несмотря на его ограничения?

Зал мониторов в большой школе может сканировать студенческий идентификатор и легко вводить запоздалую информацию в PowerSchool.

Ограничения:

не -I получить доступа к PowerSchool из-за юридических ограничений

-Can't проход ID в качестве параметра в URL, так как идентификатор базы данных отличается от личности студента. Я мог бы получить список, но с приобретением новых студентов и всего остального было бы трудно поддерживать.

Моя идея:

Создать приложение, которое сканирует штрих-код, копии студент ID в буфер обмена, сразу же открывает WebView, чтобы пользователь, войдите в систему, и они могут нажать и удерживать кнопку, чтобы вставить ID в поле поиска пользователя.

Однако это крайне неэффективно и в крайнем случае. Есть ли способ улучшить это, учитывая крайние ограничения, которые у меня есть?

Большое спасибо.

ответ

2

Вытягивание штрих-кода довольно просто. Я думаю, что вы, вероятно, на правильном пути, открыв веб-просмотр, но в зависимости от структуры URL-адреса вы даже можете изменить тело html, чтобы автоматически вводить отсканированный штрих-код в нужное поле.

3 варианта я могу думать:

1) Веб-страница вы загружаете, это вспомнить ранее использовавшийся логин из печенья? Если он использует один для автоматического заполнения поля, измените сохраненный файл cookie перед загрузкой webview.

2) Если печенье не используется, если вы можете заполнить форму, как только после загрузки страницы

3) Это самый амбициозный. Если вы знаете структуру, используемую для формы, и не нужно, чтобы студент вводил пароль, отправьте данные формы, а не открывайте страницу входа. Вот пример ручного заполнения и отправки формы с помощью Paypal:

NSMutableURLRequest *urlRequest = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:@"https://mobile.paypal.com/cgi-bin/webscr"]]; 

NSString *body = [NSString stringWithFormat:@"cmd=_xclick&[email protected]&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 и формат данных, но это должно помочь это сделать намного легче в зале мониторы в конце.

+0

Это действительно полезно, спасибо большое!Я хотел бы сделать поиск студента со скопированным штрих-кодом, однако идентификатор штрих-кода отличается от идентификатора базы данных и в качестве другого ограничения: у меня нет доступа к идентификаторам базы данных :( – rb612

+0

Но ваша идея использовать штрих-код для копирования/вставки в текстовую форму на веб-странице (я предполагаю, что штрих-код содержит идентификатор студента). Это именно то, что это будет выполнено. Все, что вы делаете, это потянуть штрих-код, а затем сделать тот же POST-вызов, что и веб-страница. – NCIXGreg

+0

oh теперь я понимаю! Спасибо! Любой способ захватить данные для отслеживания отправки данных? – rb612

1

Без фактического доступа к базе данных, которую вы хотите использовать, и с разницей идентификаторов, казалось бы, нет другого пути, кроме того, что вы предлагаете с помощью сканера штрих-кодов и копирования его в буфер обмена.

1

Ваше приложение должно быть в состоянии подражать тому, что пользователь делает в браузере. Возможно, вам потребуется захватить веб-запросы с вашего телефона и ответы, отправленные с сервера PowerSchool, для анализа того, что происходит во время входа в систему, поиска и отчета.

По общему признанию, это было бы очень «хрупкое» решение с учетом проблем, вызванных непредвиденными изменениями на сервере.