Собственный пользовательский интерфейс MoSync и развертывание - PullRequest
0 голосов
/ 04 февраля 2011

Кто-нибудь знает, возможно ли использовать MoSync для создания приложений с собственным пользовательским интерфейсом?
Из того, что я могу сказать, весь пользовательский интерфейс / графика сделаны с их собственной библиотекой пользовательского интерфейса, а не с элементами собственного пользовательского интерфейса.

Кроме того, теперь, когда я создаю вопрос в любом случае.Почему MoSync предназначается для определенных телефонов?Разве нельзя просто создать общий установочный пакет для любой платформы, на которую вы ориентируетесь?(как .apk файлы для Android).Если это возможно, это должно облегчить распространение.

Ответы [ 2 ]

1 голос
/ 15 марта 2011
1 голос
/ 07 февраля 2011

Стандартным способом до сих пор было создание пользовательского не родного интерфейса через библиотеку MAUI. По состоянию на 2011-02-03 существует экспериментальная платформа с пользовательским интерфейсом для Android и iPhone. Однако пользовательская документация, скорее всего, отсутствует, поэтому вам придется проверить исходный код для получения дополнительной информации. Я укажу вам правильное направление, для доступа к нативным виджетам вы используете системные вызовы maWidget *, определенные в: maapi.idl . Список доступных виджетов и свойств см .: Types.java . Обратите внимание, что этот API может измениться и быть расширен.

Пример простого нативного интерфейса:

#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.

...