MoSync 原生 UI 和部署
Posted
技术标签:
【中文标题】MoSync 原生 UI 和部署【英文标题】:MoSync native UI and deployment 【发布时间】:2011-02-04 13:41:35 【问题描述】:有人知道是否可以使用 MoSync 创建具有本机 UI 的应用程序吗? 据我所知,所有的 UI/图形都是用他们自己的 UI 库完成的,而不是原生的 ui 元素。
另外,既然我正在创建一个问题。为什么 MoSync 针对特定的电话?是否不可能为您所针对的任何平台创建一个通用安装包? (如 .apk 文件用于 android)。如果可能的话,它应该使分发更容易。
【问题讨论】:
【参考方案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 等通用平台构建。
【讨论】:
我认为能够制作通用 apk 文件是一个非常重要的功能。将应用程序提交到应用商店会容易得多。请注意,我还没有真正使用过 MoSync(对不同的框架进行研究),所以也许我什么都没有抱怨。无论如何,谢谢你的回答:)【参考方案2】:http://www.mosync.com/blog/2011/03/using-nativeeditbox
【讨论】:
Please provide context for links。虽然这理论上可以回答这个问题,it would be preferable 在此处包含答案的基本部分,并提供链接以供参考。以上是关于MoSync 原生 UI 和部署的主要内容,如果未能解决你的问题,请参考以下文章
在 NativeUI C++ 基础架构中如何解析实际的原生 UI 小部件?