[
https://issues.apache.org/jira/browse/CB-221?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13202976#comment-13202976
]
Shazron Abdullah commented on CB-221:
-------------------------------------
Wow - major bug here - good catch Adam.
In PGViewController, didRotateToInterfaceOrientation is totally missing - so
the orientationchange event will not be fired at all. I found the culprit by
backtracking why PhoneGap.fireEvent was never called for an orientation change.
In iOS 5 it works because by the UIWebView has this event built-in. This is
currently broken for iOS 3 and 4.
The patch is to add this to PGViewController.m:
{code}
/**
Called by UIKit when the device starts to rotate to a new orientation. This
fires the \c setOrientation
method on the Orientation object in JavaScript. Look at the JavaScript
documentation for more information.
*/
- (void)didRotateFromInterfaceOrientation:
(UIInterfaceOrientation)fromInterfaceOrientation
{
int i = 0;
switch (self.interfaceOrientation){
case UIInterfaceOrientationPortrait:
i = 0;
break;
case UIInterfaceOrientationPortraitUpsideDown:
i = 180;
break;
case UIInterfaceOrientationLandscapeLeft:
i = -90;
break;
case UIInterfaceOrientationLandscapeRight:
i = 90;
break;
}
NSString* jsCallback = [NSString
stringWithFormat:@"window.__defineGetter__('orientation',function(){ return %d;
}); PhoneGap.fireEvent('orientationchange', window);",i];
[self.webView stringByEvaluatingJavaScriptFromString:jsCallback];
}
{code}
> iOS Orientation Change Doesn't Resize WebView Width to Fully Fit Screen - iOS
> Simulator 4.2, 4.3
> ------------------------------------------------------------------------------------------------
>
> Key: CB-221
> URL: https://issues.apache.org/jira/browse/CB-221
> Project: Apache Callback
> Issue Type: Bug
> Components: iOS
> Affects Versions: 1.4.0
> Environment: Mac OS X Version 10.6.8. xCode 4.2. Sencha Touch 1.1
> Reporter: Adam Arsenault
> Assignee: Shazron Abdullah
> Labels: iOS4, patch
>
> I am using Sencha Touch 1.1 inside Phonegap 1.4.1 and the recent iOS
> orientation change fix works for me when using the iPhone 5.0 simulator but
> DOES NOT work as expected for me in older simulators like 4.2 or 4.3.
> Debugging Info:
> I am noticing that when using the older simulators, ie 4.2, 4.3 the inner web
> view does not seem to resize to the full width. I attached an on window
> resize event inside my app and for both portrait and landscape orientations,
> the width is 320 instead of being 320 for portrait and 480 for landscape. The
> height does change though. I am seeing 300 for landscape and 460 for portrait.
> I upgraded from phonegap 1.0 today and this was working as expected in 1.0.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira