iOS Swift webview重新加载动态构建网站的实际站点
我想为我的iOS 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
@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未完全加载,我只是从函数返回。