【问题标题】:prevent to refresh a web page阻止刷新网页
【发布时间】:2013-04-10 14:10:54
【问题描述】:

我有一个问题:我有一个简单的应用程序,其中包含一个菜单和一个指向网页的链接。该网页是:“soundcloud”它是一个生成音乐的站点。例如,如果我播放音乐并返回我的应用程序的菜单,当我返回网页时,音乐仍在播放,音乐还在,但页面归零。我想防止这种情况发生。对不起我的英语我是法国人-

亲切地 戴维

【问题讨论】:

标签: iphone ios xcode webview


【解决方案1】:

编辑:这是假设页面包含在您的应用程序内的 UIWebView 中。如果它是在 Safari 中打开的链接,我不相信您将能够阻止 Safari 中的导航......但在您自己的网络视图中可以。

将控制类(无论哪个视图控制器包含您的 Web 视图)设置为 UIWebView 委托。然后,当您实现委托协议时:

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{      //If you want to block ANY navigation
    return NO;

       //If you want to block refreshes but allow other navigation
     if (navigationType == UIWebViewNavigationTypeReload) return NO;
{

【讨论】:

  • 另外(如果这是您自己的 UIWebView),请确保您没有在视图控制器中手动加载页面,如果这不是您想要的行为......例如,在 viewDidAppear 中,调用加载页面会在每次出现该视图时加载它(不仅仅是在最初加载时,如您可能想要的那样。)
  • 感谢您的快速回复!我不太明白我应该做什么,我在目标 c 中首次亮相这是我已经编码的内容: NSString *fullURL5 = @""; [[self soundcloud]loadHTMLString:fullURL5 baseURL:nil];
  • 我需要在上下文中查看该代码以了解您要执行的操作。你能从包含 web 视图的视图控制器中发布完整的代码吗?
  • 当然可以! - (void)viewDidLoad { [super viewDidLoad]; NSString *fullURL5 = @""; [[self soundcloud]loadHTMLString:fullURL5 baseURL:nil]; }
  • 好的,现在更有意义了...我知道您正在从 soundcloud API 调用某些东西,但不幸的是我一点也不熟悉它。您只是想播放一些音乐,还​​是实际上正在加载网络视图?即,在您的笔尖或情节提要中,是否有 UIWebView??
【解决方案2】:

受@Reid Belton 的回答启发

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{     
    //to prevent reloading html if it is already loaded
   if( isHTMLLoaded)
   {
       return NO;
   }else{
     isHTMLLoaded = YES;
    return YES;
   }

}

【讨论】:

    猜你喜欢
    • 2019-10-06
    • 2015-08-10
    • 2010-11-17
    • 2017-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多