【问题标题】:Is it possible to resume where you last were in UIwebView Xcode 5是否可以恢复您上次在 UIwebView Xcode 5 中的位置
【发布时间】:2014-02-09 14:21:42
【问题描述】:

您好,我目前正在构建一个应用程序,其中我有多个不同站点的 webView。我的问题是,当您单击视图并在其上冲浪并切换到不同的视图并返回到第一个视图时,您是否可以恢复您所在的位置,而不必仅仅因为视图重新加载而重新开始?我现在的问题有点乱,但如果你能帮忙,那就太棒了!我正在使用常规的 UIvewView

NSURL *url = [NSURL URLWithString:@"https://www.mywebsite.com"];
NSURLRequest *requestURL = [NSURLRequest requestWithURL:url]; 
[webView loadRequest:requestURL];

【问题讨论】:

标签: ios ios7 webview xcode5


【解决方案1】:

好的,您可以保存您访问的最后一个网址并重新加载该页面吗?我认为您可以使用 NSUserDefaults 做到这一点。

【讨论】:

    【解决方案2】:

    如果您只是想在视图之间保存页面地址,则无需使用 NSUserDefaults 或状态恢复。 (如果您希望在应用程序使用之间保存数据,那么可以,您可以使用 NSUserDefaults 存储 url 字符串。)

    要将值存储在您的应用委托中以供全局访问,请在您的应用委托的 .h 中声明该变量:

    @property (nonatomic) NSUrl *currentUrl;
    

    要访问类中的变量,请在 .m 中创建应用委托的实例:

    #import "ViewController.h"
    #import "AppDelegate.h"
    
    @interface ViewController ()
    
    @end
    
    @implementation ViewController
    
    AppDelegate *mainDelegate;
    
    - (void)viewDidLoad
    {
        mainDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
    

    然后代替使用:

    NSURL *url = [NSURL URLWithString:@"https://www.mywebsite.com"];
    NSURLRequest *requestURL = [NSURLRequest requestWithURL:url]; 
    [webView loadRequest:requestURL];
    

    在打开webView 之前初始设置currentUrl 值:

    mainDelegate.currentUrl = [NSURL URLWithString:@"https://www.mywebsite.com"];
    

    在每个 webView 打开之前,将 NSUrlRequest 初始化为:

    NSURLRequest *requestURL = [NSURLRequest requestWithURL:mainDelegate.currentUrl]; 
    

    最后,要在关闭时存储每个webView 的当前地址,请使用:

    mainDelegate.currentUrl = webView.request.URL;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-29
      • 2017-04-26
      • 1970-01-01
      • 1970-01-01
      • 2013-08-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多