[ 
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

Reply via email to