Во-первых, я предлагаю вам отредактировать заголовок, так как это вопрос mgwt, который не имеет ничего общего с gwtphonegap.
Когда вы говорите, что вы используете «PhoneGap-Emulator» Я предполагаю, что вы имеете в виду что-то вроде Ripple, а не IOS Simulator (который будет использоваться по cordova emulate ios
)
В Platform.gwt.xml
, ОС определяется с помощью агента пользователя:
<define-property name="mgwt.os" values="android, ios" />
<property-provider name="mgwt.os"><![CDATA[
// Detect mgwt.os from user agent.
var ua = navigator.userAgent.toLowerCase();
if (ua.indexOf("iphone") != -1 || ua.indexOf("ipod") != -1) {
// iphone and ipod.
return "ios";
} else if (ua.indexOf("ipad") != -1) {
// ipad.
return "ios";
} else if (ua.indexOf("android") != -1) {
return "android";
}
return "ios";
]]></property-provider>
Свойства mgwt.os
затем используется для определения правильного внешнего вида для виджетов, например, в Button.gwt.xml
:
<replace-with class="com.googlecode.mgwt.ui.client.theme.platform.button.ButtonIOSAppearance">
<when-type-is class="com.googlecode.mgwt.ui.client.widget.button.ButtonAppearance" />
<when-property-is name="mgwt.os" value="ios" />
</replace-with>
Чтобы ответить на ваш вопрос, убедитесь, что агент пользователя в вашем эмуляторе содержит строку «iPhone» или «Ios», или просто установить свойство ОС для прошивки, добавив
<set-property name="mgwt.os" value="ios" />
к вашему GWT .xml.
Спасибо, это сработало! – user3629892