2011-02-04 35 views
0

有谁知道是否可以使用MoSync创建具有本机用户界面的应用程序?
从我可以告诉所有的用户界面/图形是用自己的用户界面库,而不是本地用户界面元素。MoSync本地用户界面和部署

另外,现在我仍然在创建一个问题。为什么MoSync会针对特定的电话?是不是可以为你定位的平台创建一个通用的安装包? (如android的.apk文件)。如果可能的话,它应该使分发更容易。

回答

1

现在直到现在的标准方式是通过MAUI库创建一个自定义的非本机用户界面。截至2011年2月3日,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等通用平台构建。

+0

我会认为能够使通用apk文件是一个更重要的功能。将使应用程序向应用程序商店提交应用程序变得更容易。 请注意,我还没有实际使用MoSync(正在研究不同的框架),所以也许我没有抱怨。 无论如何,谢谢你回答:) – Rutger 2011-02-08 08:26:11

1
+2

[请提供链接的上下文](http://stackoverflow.com/questions/how-to-answer)。虽然这可能在理论上回答这个问题,[这将是优选的](http://meta.stackexchange.com/q/8259)以包括回答的主要部分在这里,并提供链路参考。 – Gilles 2011-11-12 23:06:09