快速登录Webview后从网站检索json

时间:2020-08-22 18:28:23

标签: ios swift xcode

我正在开发一个涉及从学生门户获取课程信息的应用程序。在用户方面:

  1. 将学生带到显示大学网站登录页面的网络视图。 (https://acorn.utoronto.ca/
  2. 学生输入凭据(Utorid和密码),单击登录,关闭Webview,然后将学生带回应用程序,并且可以很好地导入和整理课程。

与此同时,该应用程序应该:

  1. 成功登录后进入用户的个人门户页面,并在后台处理以下内容的同时将用户带回应用程序
  2. 单击(位于左侧栏中的“注册并管理”)(不确定是否有必要,但是登录时在浏览器中查看源代码时,除非单击,否则有时不会显示XHRs文件夹在该链接上)
  3. 转到XHRs文件夹并找到json“ enrolledCourses”(https://acorn.utoronto.ca/sws/rest/dashboard/courseRegistration/enrolledCourses
  4. 检索并解析用户的课程信息,并将其提供给应用程序

Source view when student just logged in

Source view when student click on "Enrol & Manage" in the left sidebar, as you can see now "XHRs" is displayed

The file "enrolledCourses" in "XHRs" which contains the course information

这是到目前为止我的ViewController代码:

import UIKit
import HTMLKit
import WebKit

class UtoridViewController: UIViewController, WKNavigationDelegate {
    
    private let webView: WKWebView = {
        let webView_result = WKWebView(frame: .zero)
        return webView_result
    }()

    override func viewDidLoad() {
        
        print("Acorn loading")
        super.viewDidLoad()
        
        view.addSubview(webView)
        
        webView.frame = view.bounds
        webView.navigationDelegate = self
        
        // Covert URL_string into URL
        guard let url = URL(string: Constants.ACORN_URL) else {
            return
        }
        
        webView.load(URLRequest(url: url))
    }
}

extension ViewController: WKNavigationDelegate {
    func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!){
        
        
    }
}

到目前为止,我可以吸引用户访问该网站,但是我不知道如何继续...

任何帮助或指导将不胜感激!预先感谢!

1 个答案:

答案 0 :(得分:0)

它不可能,另一个进程上的数据...

您为什么不希望向服务器发送http请求并获取所需的数据?如果我没记错的话,您可以从webView中获取cookie并将其用于请求

当然可以通过获取html代码或执行任意JS代码来进行选择,但这是一个非常不稳定的解决方案