2011-02-04 34 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