I'm experimenting a problem accessing with iOS 6 Mobile Safari directly to an history mapped place of my GWT MVP Web Application.
Example URL is 127.0.0.1/webcontext/#register:email!code
where 'register' is the PlaceTokenizer prefix of RegisterPlace that is included in the AppPlaceHistoryMapper.
Accessing to that url by iOS 6 Mobile Safari results in a randomic behaviour: the browser simply load the application main page, without jumping to the correct view. After many retry and reloads, sometimes the right view is displayed correctly.
I'm aware of iOS 6 Mobile Safari AJAX related bugs, but this seems not to be related to any of them: the activity related to RegisterPlace is not placing any call to the server at start, just build and serve a registration form.
This was working without problems on iOS 5 Safari and still work good on Android Browser as well as all desktop based browsers (Firefox, Safari, Chrome).
Is there anyone else facing the same problem?
Thanks
--
You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group.
To view this discussion on the web visit https://groups.google.com/d/msg/google-web-toolkit/-/97xukYK1uwAJ.
To post to this group, send email to google-we...@googlegroups.com.
To unsubscribe from this group, send email to google-web-tool...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
--
You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group.
To view this discussion on the web visit https://groups.google.com/d/msg/google-web-toolkit/-/11VgjjeOTYUJ.
package com.module.client.place; import java.util.logging.Logger; import com.google.gwt.place.shared.Place; import com.google.gwt.place.shared.PlaceTokenizer; import com.google.gwt.place.shared.Prefix; public class RegisterPlace extends Place { private final static Logger logger = Logger.getLogger(RegisterPlace.class.getName()); private static final String SEPARATOR="!"; private String email; private String code; public RegisterPlace(String email, String code) { this.email = email; this.code = code; } public String getEmail() { return email; } public String getCode() { return code; } @Override public boolean equals(Object obj) { if (this == obj ) { return true; } if (obj == null) { return false; } if ( obj instanceof RegisterPlace && ((RegisterPlace)obj).getEmail() != null && ((RegisterPlace)obj).getCode() != null && ((RegisterPlace)obj).getEmail().equals(this.getEmail()) && ((RegisterPlace)obj).getCode().equals(this.getCode()) ) { return true; } return false; } @Override public String toString() { return "RegisterPlace [email=" + email + ", code=" + code + "]"; } @Prefix("register") public static class Tokenizer implements PlaceTokenizer<RegisterPlace> { @Override public String getToken(RegisterPlace place) { return place.getEmail() + SEPARATOR + place.getCode(); } @Override public RegisterPlace getPlace(String token) { String bits[] = token.split(SEPARATOR); if (bits.length == 2) {
return new RegisterPlace(bits[0], bits[1]); } else { return new RegisterPlace(null,null); } } } }
This is a bit old, but in the interest of linking information here's a blog post I found on this issue with another workaround: http://deploythoughts.blogspot.com/2012/11/gwt-webapp-and-ios-6-safari.html. That workaround did the trick for us.