incubator-callback-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Shazron Abdullah (Commented) (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CB-221) iOS Orientation Change Doesn't Resize WebView Width to Fully Fit Screen - iOS Simulator 4.2, 4.3
Date Tue, 07 Feb 2012 23:49:00 GMT

    [ 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

        

Mime
View raw message