0

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

另外,既然我正在创建一个问题。为什么 MoSync 针对特定的电话?是否不可能为您所针对的任何平台创建一个通用安装包?(如 .apk 文件用于 android)。如果可能的话,它应该使分发更容易。

4

2 回答 2

1

到目前为止,标准方法是通过 MAUI 库创建自定义的非本地 UI。截至 2011-02-03,有一个适用于 Android 和 iPhone 的实验性原生 UI 框架。然而,用户文档相当不存在,因此您必须检查源代码以获取更多信息。我将为您指明正确的方向,要访问本机小部件,您可以使用定义在maapi.idl中的 maWidget* 系统调用。有关可用小部件和属性的列表,请参阅:Types.java。请注意,此 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;
};

目前,没有可用的仿真器支持,因此您必须在设备或特定 SDK 仿真器中运行它。

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

于 2011-02-07T18:52:05.813 回答
1

http://www.mosync.com/blog/2011/03/using-nativeeditbox

于 2011-03-14T23:22:40.270 回答