Mobile MoSync本机UI和部署

Mobile MoSync本机UI和部署,mobile,user-interface,cross-platform,packaging,mosync,Mobile,User Interface,Cross Platform,Packaging,Mosync,有人知道是否可以使用MoSync创建具有本机UI的应用程序吗? 据我所知,所有的UI/图形都是使用自己的UI库完成的,而不是本地UI元素 还有,现在我要提出一个问题。为什么MoSync针对特定的电话?不可能只为目标平台创建一个通用安装包吗?(比如android的.apk文件)。如果可能的话,它应该使分发更容易。到目前为止,标准的方法是通过MAUI库创建自定义的非本地UI。截至2011年2月3日,Android和iPhone已经有了一个实验性的原生UI框架。但是,用户文档并不存在,因此您必须检查源

有人知道是否可以使用MoSync创建具有本机UI的应用程序吗?
据我所知,所有的UI/图形都是使用自己的UI库完成的,而不是本地UI元素


还有,现在我要提出一个问题。为什么MoSync针对特定的电话?不可能只为目标平台创建一个通用安装包吗?(比如android的.apk文件)。如果可能的话,它应该使分发更容易。

到目前为止,标准的方法是通过MAUI库创建自定义的非本地UI。截至2011年2月3日,Android和iPhone已经有了一个实验性的原生UI框架。但是,用户文档并不存在,因此您必须检查源代码以获取更多信息。我将为您指出正确的方向,用于访问您在中定义的maWidget*系统调用中使用的本机小部件。有关可用小部件和属性的列表,请参阅:。请注意,此API可能会更改和扩展

一个简单的本机UI示例:

#include <MAUtil/Moblet.h>

#include <IX_WIDGET.h>

class NativeUIMoblet : public MAUtil::Moblet
{
public:
    NativeUIMoblet()
    {
        // Create a screen
        MAHandle mainScreen = maWidgetCreate( "Screen" );

        // Create a 'Hello World' label
        MAHandle helloLabel = maWidgetCreate( "Label" );
        maWidgetSetProperty( helloLabel, "text", "Hello World!" );

        // Add the label to the screen
        maWidgetAddChild( mainScreen, helloLabel );

        // Show the screen
        maWidgetScreenShow( mainScreen );
    }

    void keyPressEvent(int keyCode, int nativeCode)
    {

    }

    void keyReleaseEvent(int keyCode, int nativeCode)
    {

    }
};

extern "C" int MAMain()
{
    MAUtil::Moblet::run( new NativeUIMoblet( ) );
    return 0;
};
#包括
#包括
类NativeUIMoblet:public MAUtil::Moblet
{
公众:
NativeUIMoblet()
{
//创建一个屏幕
MAHandle mainScreen=maWidgetCreate(“屏幕”);
//创建“Hello World”标签
MAHandle helloLabel=maWidgetCreate(“标签”);
maWidgetSetProperty(helloLabel,“文本”,“你好,世界!”);
//将标签添加到屏幕上
maWidgetAddChild(主屏幕,helloLabel);
//显示屏幕
maWidgetScreenShow(主屏幕);
}
无效按键事件(int keyCode,int nativeCode)
{
}
无效密钥释放事件(int-keyCode,int-nativeCode)
{
}
};
外部“C”int MAMain()
{
MAUtil::Moblet::run(新的NativeUIMoblet());
返回0;
};
目前,没有可用的仿真器支持,因此您必须在设备或特定的SDK仿真器中运行它


针对特定手机的原因是存在特定于特定设备的bug。但在最近的MoSync夜间版本中,您可以为Android 2.1等通用平台进行构建。

我认为能够生成通用apk文件是rahter的一项重要功能。这将使向应用商店提交应用程序变得更加容易。请注意,我还没有真正使用MoSync(对不同的框架进行研究),所以我可能什么都没抱怨。无论如何,谢谢你的回答:)。虽然这在理论上可以回答这个问题,但在这里包括答案的基本部分,并提供链接供参考。