UIApplication sharedApplication在返回应用程序并重新启动时会继续执行

时间:2013-01-15 16:42:11

标签: ios uiapplicationdelegate

以下代码工作正常,但当我回到我的应用程序时,它继续执行以下代码,但我不知道为什么以及如何阻止它。 我认为它只发生在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收到打开网址的请求时都会调用以下内容

   - (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>

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

如果我理解你的问题,问题是

  1. 启动你的应用程序,转到mainViewController,在视图加载后,它会让iOS在另一个应用程序中打开一个url。
  2. 其他应用程序已打开,当您返回应用程序时,Web视图会自动重新加载该URL。
  3. 所以,问题是webview自动重新加载网址的原因。

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

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

    并且此答案将被删除。

答案 2 :(得分:0)

这是IOS 5.0的一个错误,如果你回到应用程序返回前台的webview,它会刷新它....就像safari那样...

但是Apple修复了IOS 6.0中的这个错误

所以没有什么可以做的。