【问题标题】:Swift waiting for page load from javascript in UIWebViewSwift 等待从 UIWebView 中的 javascript 加载页面
【发布时间】:2015-12-31 23:08:13
【问题描述】:

我正在尝试使用 UIWebView 登录页面。由于基础设施的复杂性,我正在加载登录页面并手动提交表单(插入 javascript)。加载主页后,我想重定向到另一个页面。唯一的问题是我无法让重定向等到加载主页(因为我没有加载提交表单的视图)。有没有办法让它等待?

我目前的代码

webView.stringByEvaluatingJavaScriptFromString(jScript3) //submit the form

let gradeURL = NSURL(string: "https://redirectpage")!
let gradeRequest = NSMutableURLRequest(URL:gradeURL)
webView.loadRequest(gradeRequest)

谢谢!

【问题讨论】:

    标签: javascript ios swift uiwebview


    【解决方案1】:

    我想你可能想从重定向页面得到一些东西。

    先设置Delegate,再使用UIwebViewDelegate函数

    func webView(webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType: UIWebViewNavigationType) -> Bool {
    
        //do nothing except 4 the redirectURL
        if request.URL?.absoluteString.hasPrefix(redirectURL) == false  {
            return true
        }
        //detailly handle the query
        if let _query = request.URL?.query where _query.condition {...}
    }
    

    【讨论】:

    • 不要强制打开选项。使用 if let 与 ?安全地解开 URL 或其属性之一。另外你应该提到他需要让视图控制器成为 viewDidLoad 中的 webview 委托
    • 我认为它在逻辑上可能是 nil,但我同意强制展开选项总是一个糟糕的理想,所以我修复了它。
    猜你喜欢
    • 2020-04-02
    • 2023-03-15
    • 2011-08-17
    • 2023-04-07
    • 2017-09-13
    • 2016-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多