MoSync 本机 UI 和部署

发布于 2024-10-15 18:56:38 字数 194 浏览 9 评论 0原文

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

另外,现在我无论如何都要提出一个问题。为什么 MoSync 针对特定电话?是否无法为您的目标平台创建通用安装包? (如 Android 的 .apk 文件)。如果可能的话,应该会让分发变得更容易。

Does anybody know if it's possible to use MoSync to create apps with a native UI?
From what I can tell all the UI/graphics is done with their own UI library and don't the the native ui elements.

Also, now that I'm creating a question anyway. Why does MoSync target specific telephones? Is it not possible to just create a generic install package for whatever platform you're targeting? (like .apk files for android). If it's possible it should make distribution easier.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

贵在坚持 2024-10-22 18:56:38

到目前为止,标准方法是通过 MAUI 库创建自定义非本机 UI。截至 2011 年 2 月 3 日,有一个适用于 Android 和 iPhone 的实验性本机 UI 框架。然而,用户文档并不存在,因此您必须检查源代码以获取更多信息。我将为您指出正确的方向,为了访问本机小部件,您可以使用定义在以下位置的 maWidget* 系统调用: maapi.idl。有关可用小部件和属性的列表,请参阅: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 等通用平台进行构建。

The standard way up til now has been to create a custom non-native UI through the MAUI library. As of 2011-02-03 there is an experimental native UI framework for Android and iPhone. The user documentation is however rather non-existent, so you will have to check the source code for more information. I'll point you in the right direction, for accessing native widgets you use the maWidget* system calls defined in: maapi.idl. For a list of available widgets and properties see: Types.java. Note that this API is likely to change and be expanded.

A simple native UI example:

#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;
};

Presently, there is no emulator support available, so you will have to run it on a device or in a specific SDKs emulator.

The reason for targeting a specific phone is that there exists bugs specific to a certain device. But in the recent nightly builds of MoSync you can build for generic platforms like Android 2.1.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文