4

下面的代码工作正常,但是当我回到我的应用程序时,它会继续执行下面的代码,但我不知道为什么以及如何停止它。我认为它只发生在 ios5.0 中:app flow - rootviewcontroller -> mainviewcontroller -> webview

在 mainviewcontroller 的 webview 的 shouldstartloadrequest 方法中调用了以下代码

@property (readwrite, retain) UIWebView *_loginWebView;
...
..
- (void)viewDidLoad
{
    [super viewDidLoad];
    NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
    [_loginWebView loadRequest:requestObj];
}

//当webview收到打开url的请求时调用following

   - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{
            //return no is a special case there is more code in the method which I am not showing here
           if ([[UIApplication sharedApplication] canOpenURL:myURL]) 
           {
                  [[UIApplication sharedApplication] openURL:myURL];
           }
           else
           {
                  [[UIApplication sharedApplication] openURL:[NSURL URLWithString:newPath]];
           }
           return NO;
     }
     //above is a special case

}

头部标签内容 -

<head>
<meta name="viewport" content="width=device-width,initial-scale=1" />
  <!-- iOS Stuff -->
  <link rel="apple-touch-icon" href="images/...."/>
  <meta name="apple-mobile-web-app-capable" content="yes" />
  <link rel="shortcut icon" href="favicon.ico" />
  <script async="async" src="https://......."></script>
  <script type="text/javascript">
..........
  </script>
</head>
4

3 回答 3

0

myURL 是否在标题中设置了元刷新?如果网页正在重新加载,则会调用此方法。如果有重定向,它也会被调用。

于 2013-01-18T00:44:33.587 回答
0

这是 IOS 5.0 的一个错误,如果您在应用程序返回前台时返回 web 视图,它会刷新它......就像 safari 一样......

但苹果在 IOS 6.0 中修复了这个错误

所以对此无能为力。

于 2013-06-16T03:54:44.440 回答
0

如果我很好地理解了您的问题,那么问题是

  1. 启动您的应用程序,转到 mainViewController,在视图加载后,它将让 iOS 在另一个应用程序中打开一个 url。
  2. 打开另一个应用程序,当您返回您的应用程序时,Web 视图会自动重新加载 url。

所以,问题是为什么 webview 会自动重新加载 url。

从上面的代码来看,它喜欢不需要使用 web 视图,因为委托总是返回 No,并做一些其他的事情。

我不知道为什么现在会发生这种情况,如果可以的话,只需删除困扰此的 web 视图。

这个答案将被删除。

于 2013-01-18T03:30:18.990 回答