mgwt:获得ios的外观和感觉

时间:2015-12-18 11:06:43

标签: cordova gwt mgwt

我正在使用gwt phonegap创建一个phonegap应用。如何创建iPhone外观?

现在,我已经输入了我的gwt.xml文件:

{{1}}

我正在使用Phonegap-Emulator测试应用程序。虽然功能按预期工作,但应用程序没有iPhone外观。

我是否需要使用某些小部件才能获得该功能?

1 个答案:

答案 0 :(得分:1)

首先,我建议您编辑标题,因为这是一个与gwtphonegap无关的mgwt问题。

当你说你使用'Phonegap-Emulator'时,我认为你的意思是Ripple,而不是iOS模拟器(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”,或者通过添加

将操作系统属性设置为iOS
<set-property name="mgwt.os" value="ios" />

到你的gwt.xml。