Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS Swift webview重新加载动态构建网站的实际站点_Ios_Swift_Webview - Fatal编程技术网

iOS Swift webview重新加载动态构建网站的实际站点

iOS Swift webview重新加载动态构建网站的实际站点,ios,swift,webview,Ios,Swift,Webview,我想为我的iOS webview应用程序实现一个刷新按钮 我试了一下: @IBAction func refreshAction(sender: AnyObject) { webView.reload() } 问题是,单击此按钮,它总是加载webview的主页,而不是用户所在的实际站点 是否有可能重新加载用户实际所在的一侧 编辑:网站的内容是动态构建的。我假设当您第一次将某个网站加载到您的webview时,您会执行以下操作: let url = NSURL (strin

我想为我的iOS webview应用程序实现一个刷新按钮

我试了一下:

@IBAction func refreshAction(sender: AnyObject) {
        webView.reload()
    }
问题是,单击此按钮,它总是加载webview的主页,而不是用户所在的实际站点

是否有可能重新加载用户实际所在的一侧


编辑:网站的内容是动态构建的。

我假设当您第一次将某个网站加载到您的webview时,您会执行以下操作:

let url = NSURL (string: "http://someWebsite")
let requestObj = NSURLRequest(URL: url!);
webView.loadRequest(requestObj)
因此,当您调用
webView.reload()
时,它会加载发送给它的初始url

这是我推荐的解决你问题的方法

实现UIWebViewDelegate的
webviewDidFinishLoad(webView:UIWebView)
方法,以获取在webView中加载的当前网站:

class YourViewController:UIViewController, UIWebViewDelegate{

    var currentUrl:String!

    func webViewDidFinishLoad(webView: UIWebView){

        if webView.loading{

            return
        }

        self.currentUrl = webView.request?.URL?.absoluteString
    }

}
现在,在按钮操作中调用
webView.reload()
,您应该使用实际URL调用
webView.loadRequest(requestObj)

@IBAction func refreshAction(sender: AnyObject) {
    let url = NSURL (string: self.currentUrl)
    let requestObj = NSURLRequest(URL: url!);
    webView.loadRequest(requestObj)
}

我假设当您第一次将某个网站加载到webview时,您会执行以下操作:

let url = NSURL (string: "http://someWebsite")
let requestObj = NSURLRequest(URL: url!);
webView.loadRequest(requestObj)
因此,当您调用
webView.reload()
时,它会加载发送给它的初始url

这是我推荐的解决你问题的方法

实现UIWebViewDelegate的
webviewDidFinishLoad(webView:UIWebView)
方法,以获取在webView中加载的当前网站:

class YourViewController:UIViewController, UIWebViewDelegate{

    var currentUrl:String!

    func webViewDidFinishLoad(webView: UIWebView){

        if webView.loading{

            return
        }

        self.currentUrl = webView.request?.URL?.absoluteString
    }

}
现在,在按钮操作中调用
webView.reload()
,您应该使用实际URL调用
webView.loadRequest(requestObj)

@IBAction func refreshAction(sender: AnyObject) {
    let url = NSURL (string: self.currentUrl)
    let requestObj = NSURLRequest(URL: url!);
    webView.loadRequest(requestObj)
}

如果你在你的桌面浏览器中完成,并在任何阶段重新加载,它会带你回到主页吗?如果内容是动态构建的,它不能重新加载给定的站点,因为它不是唯一的URL,而是主站点本身的URL。我只是创建一个演示并在上面加载我的站点。然后我点击“联系我们”页面,然后重新加载“保持联系我们”页面,而不是重定向到主页。我不知道你的代码是什么,为什么会在你的side@TMob是的,内容是动态构建的。所以不可能得到实际站点的“真实”Url并重新加载它?我不是网络专家。但是我想这就是为什么标准的
webView.reload()
不能按您希望的方式工作。首先,为什么要重新加载它?有一个桌面应用程序连接到Webcomponent。桌面应用程序上的用户可以进行更改。因此,iOS应用程序用户只需刷新站点并查看更改即可。然后,推送通知应通过打开正确站点的链接发送给iOS用户。我想我必须在Webcomponents端实现这一点。如果你在桌面浏览器中实现这一点,并在任何阶段重新加载,它会带你回到主页吗?如果内容是动态构建的,它不能重新加载给定的站点,因为它不是唯一的URL,而是主站点本身的URL。我只是创建一个演示并在上面加载我的站点。然后我点击“联系我们”页面,然后重新加载“保持联系我们”页面,而不是重定向到主页。我不知道你的代码是什么,为什么会在你的side@TMob是的,内容是动态构建的。所以不可能得到实际站点的“真实”Url并重新加载它?我不是网络专家。但是我想这就是为什么标准的
webView.reload()
不能按您希望的方式工作。首先,为什么要重新加载它?有一个桌面应用程序连接到Webcomponent。桌面应用程序上的用户可以进行更改。因此,iOS应用程序用户只需刷新站点并查看更改即可。然后,推送通知应通过打开正确站点的链接发送给iOS用户。我想我必须在Webcomponents端实现这一点。这会导致以下异常致命错误:在展开可选值时意外发现nil。您在if子句中返回什么?在if子句中,如果webView未完全加载,我只是从函数返回。这会导致以下异常致命错误:在展开可选值时意外发现nil在if子句中返回什么?在if子句中,如果webView未完全加载,我只是从函数返回。