[ https://issues.apache.org/jira/browse/CB-13382?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16379785#comment-16379785 ]
ASF subversion and git services commented on CB-13382: ------------------------------------------------------ Commit e75c38f65d05b8bbca1178d6ace309a2df7844da in cordova-ios's branch refs/heads/master from [~surajpindoria] [ https://gitbox.apache.org/repos/asf?p=cordova-ios.git;h=e75c38f ] CB-13382 dealloc the webViewEngine (#359) * CB-13382: (ios) Added destroyWebView method for CDVViewController * CB-13382: (ios) Remove new function and add to delloc method > 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 (v7.6.3#76005) --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@cordova.apache.org For additional commands, e-mail: issues-h...@cordova.apache.org