針對AppleiPhone進行的開發之二

2021-08-23 13:30:40 字數 2355 閱讀 2114

實現 iphone 原有外觀

換膚允許 oracle adf mobile 應用程式通過使用 trinidad 元件呈現 iphone 的原有外觀。還允許相同的一組 ui 元件呈現平台原有外觀,無需為不同的移動裝置建立同一應用程式的多個版本。

iphone 換膚的第一步是實施邏輯以允許 jsf 應用程式在執行時對不同的移動瀏覽器應用不同的樣式表。oracle adf mobile 應用程式通常需要支援多種裝置型別,因此要定義乙個可以用於多個裝置的樣式表是不切實際的。為此,首先應為應用程式的頁面流建立 managed bean,其方法之一是需要檢測瀏覽器型別並返回將用於平台的**系列名稱。此方法將在 trinidad-config.xml 檔案中進行呼叫,例如:

#其中 agentutil 是 managed bean 的類名,phonefamily 是將**系列作為字串返回的方法。trinidad-skins.xml 檔案中定義了各種外觀系列以及 css 檔案在專案中的對應位置。例如,對於 iphone,可將**系列定義為:

iphone

iphonefamily

org.apache.myfaces.trinidad.desktop

styles/iphone.css

使用 iphone 時,agentutil.phonefamily 方法會返回 iphonefamily。這將導致使用 styles/iphone.css 中的樣式表。以下是 agentutil.phonefamily 方法的示例**段;請注意示例**僅包含適用於 iphone、symbian 和所有其他移動瀏覽器的案例。可以根據需要新增其他瀏覽器。

private string iphone_skin = "iphonefamily";

private string symbian_skin = "symbianfamily";

private string default_skin = "minimalfamily";

public string getphonefamily() else if (agent != null && agent.indexof("symbian") > -1) else

}return phonefamily;

}有關 agent.indexof("") 函式的一點說明。 此函式將對照發出請求的瀏覽器的 user agent 字段使用輸入 進行匹配。 此函式執行部分匹配 — 例如,在示例 agent.indexof("iphone") 中,其將參照模式「iphone」檢查瀏覽器的整個 user agent 字串。 如果匹配,即 user agent 中包含字串 iphone,則該函式將返回 -1。 可以根據需要在此字段中指定盡可能長或短的字串,只要返回可保證所需的匹配。 雖然應根據測試案例指定 ua 字串,但此處給出了一些常用的模式:

iphone:用於識別所有的 iphone safari 瀏覽器

symbian:用於識別所有的 nokia s60 瀏覽器

blackberry9000:用於識別所有的 blackberry 9000 系列瀏覽器

blackberry88:用於識別 blackberry 8800 系列瀏覽器

blackberry83:用於識別 blackberry 8300 系列瀏覽器

blackberry:用於識別所有其他的 blackberry 瀏覽器

windows ce:用於識別所有的 windows mobile 瀏覽器

android:用於識別 android 中基於 webkit 的瀏覽器

使用換膚和 trinidad 元件實施常用的 iphone ui 元素

下一步是要實現 iphone 原有外觀,在支援常用 iphone ui 元件建立的樣式表中定義樣式類。iphone 原有應用程式中基本上有三個常用 ui 元素:導航面板列表、字段設定面板以及導航欄。下面,我們詳細介紹這些元素。

導航面板列表

導航面板列表將資料列表顯示為單列表,其中的各行都包含來自多個列的資料。它支援的應用場景為:使用者瀏覽彙總資料列表並選擇其中的一行以顯示有關該行的其他詳細資訊。在下方的示例中,面板列表顯示了在售房屋列表。

對應的**如下所示:  

字段設定面板對應的**片段如下所示:

......

請注意 panelbase 樣式提供了此螢幕的排針背景。兩個 panelcaptiongroup 控制項將資料顯示分為兩組。最後,street 欄位是乙個 tr:golink 元件,可以呼叫 iphone google maps 應用程式。此功能將在下一部分說明。

Apple iPhone熱銷的背後

賈伯斯除了是炒作高手外,其實人家基本功也相當紮實,他在努力在使iphone時尚的同時,也在為實用打基礎。以下幾則訊息,充分說明了這一點 1.google將推出支援iphone的應用程式,而微軟還是一如既往地保持沉默 wm和iphone真是冤家路窄,估計microsoft要在手機領域複製pc上面的成功...

針對測試報告進行針對性優化

在壓力測試發現問題以後,就要進行有針對性的優化。對於不同的系統,這個過程的策略並不是確定的,但是大概可以劃分為以下幾個步驟 1.定位效能瓶頸,找出系統存在的問題 不同系統的特點不同,在效能瓶頸上也有不同的表現,一般來說,下面的幾個方面通常存在比較大的優化空間 1 磁碟i o及檔案操作 由於磁碟i o...

使用modin針對pandas進行效能優化

1.為什麼要使用modin?modin 是加州大學伯克利分校 riselab 的乙個早期專案,旨在促進分布式計算在資料科學領域的應用。它是乙個多程序的資料幀 dataframe 庫,具有與 pandas 相同的應用程式介面 api 使使用者可以加速他們的 pandas 工作流。該系統是為希望程式執行...