[ https://issues.apache.org/jira/browse/CB-13382?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16194985#comment-16194985 ]
Suraj Pindoria commented on CB-13382: ------------------------------------- Submitted PR for this: https://github.com/apache/cordova-ios/pull/342 > Cordova iOS - Method to correctly destroy CDVViewControllers webView object > --------------------------------------------------------------------------- > > Key: CB-13382 > URL: https://issues.apache.org/jira/browse/CB-13382 > Project: Apache Cordova > Issue Type: Improvement > Components: cordova-ios > Affects Versions: cordova-ios 4.5.0 > Reporter: Nick Deakin > Assignee: Suraj Pindoria > Priority: Minor > > We have an app where we are using multi CDVViewController instances where a > user can switch between hybrid apps within the native app. > The issue that as been lingering for a couple of years is that even though a > CDVViewController instance can be set to nil, the webview contained within > still remains in memory. This can be observed when using the safari debugger. > This is particularly troublesome when the webview is 'closed', then the > content files in the webview are updated, and finally the webview is > recreated, showing the old content. Performing a cmd-r in safari debugger > refreshes the view and shows the updated content. > We can also do this a [UIWebView reload], but it is not possible if the app > changes it's URL to a none physical path, e.g. > file:///xxxxx/myApp/www/index.html becomes file:///xxxxx/myApp/www/home, then > we get a page load error. > I've been able to get the webview completely removed by doing the following: > add the following method to CDVViewController: > {code:java} > -(void)destroyWebView { > self.webViewEngine = nil; > } > {code} > then in my view controllers destroy method: > {code:java} > [self.webViewEngine loadHTMLString:@"about:blank" baseURL:nil]; > [self.pluginObjects removeAllObjects]; > [self.webView removeFromSuperview]; > [self destroyWebView]; > {code} > Setting webViewEngine to nil is an unavoidable step to completely destroying > the webview, but it is readonly. > Therefore, i would really appreciate this destroyWebView method, or a similar > cleanup method being added. > Android has a method to clean up which is CordovaWebViewImpl.handleDestroy(). > This destroys all the plugins, sets the URL to 'about:blank' and then > executes engine.destroy() > Many thanks! > Nick -- This message was sent by Atlassian JIRA (v6.4.14#64029) --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@cordova.apache.org For additional commands, e-mail: issues-h...@cordova.apache.org