2017/01/23
2017/01/10
使用 Xamarin.Forms 進行專案開發,必備哪些基本技能
當您使用 Xamarin.Forms 進行專案開發的時候,有哪些基本技能要熟悉呢?您都學會了嗎?
C# / .NET
XAML語法
XAML標記延伸功能
各種不同螢幕規格的視覺設計
Data Binding
應用程式生命週期
各種頁面
不同版面配置
使用者介面控制項
使用者控制項宣告與使用
降低部署檔案大小
程式碼簽名
在模擬器與實機測試
問題除錯技巧
使用者介面自動測試
呼叫 Web API
XAML語法
XAML標記延伸功能
各種不同螢幕規格的視覺設計
Data Binding
應用程式生命週期
各種頁面
不同版面配置
使用者介面控制項
使用者控制項宣告與使用
降低部署檔案大小
程式碼簽名
在模擬器與實機測試
問題除錯技巧
使用者介面自動測試
呼叫 Web API
標籤:
C#,
Xamarin,
Xamarin.Forms
2016/09/27
如何在 Mac 電腦上升級 Xcode & Xamarin Studio
Xcode
當您 Mac 電腦上的 Xcode 有新版本推出的時候,App Store 會有提示,如下
此時,您可以開啟 App Store 這個應用程式,在
更新項目
頁次,可以看到有新版本的 Xcode 推出
請點選右方的更新,就可以進行 Xcode 的開發工具更新。
之後,會出現底下對話窗,您需要輸入 Apple ID
升級完成後,會出現如下畫面
Xamarin Studio
在 Mac 電腦上開啟 Xamarin Stdio 程式
點選功能表
Xamarin Studio Community
> Check for Update...
等候下載完成,點選
Restart and Install Updates
標籤:
C#,
Xamarin,
Xamarin.Forms,
Xamarin.iOS
2016/09/26
Xamarin 導航工具列的使用與應用 ToolbarItem
想要在頁面中使用工具列功能,這個頁面必須是具備可導航的特性。
工具列的各個按鈕項目,可以使用
ContentPage.ToolbarItem
屬性項目 Property Element 來進行設定。
每個工具列中的按鈕使用
ToolbarItem
控制項來定義其功能- Command可以用於綁定 ViewModel 內的 ICommand 屬性,執行特定命令工作
- Text這個工具列按鈕要顯示的文字
<ContentPage.ToolbarItems>
<ToolbarItem Command="{Binding 查看地圖Command}" Text="查看地圖" Order="Secondary" Priority="0" />
<ToolbarItem Command="{Binding 撥打電話Command}" Text="撥打電話" Order="Secondary" Priority="0" />
<ToolbarItem Command="{Binding 發送簡訊Command}" Text="發送簡訊" Order="Secondary" Priority="0" />
<ToolbarItem Command="{Binding 發送電子郵件Command}" Text="發送電子郵件" Order="Secondary" Priority="0" />
<ToolbarItem Command="{Binding 分享內容Command}" Text="分享內容" Order="Secondary" Priority="0" />
<ToolbarItem Command="{Binding 分享連結Command}" Text="分享連結" Order="Secondary" Priority="0" />
<ToolbarItem Command="{Binding 查看官網Command}" Text="查看官網" Order="Secondary" Priority="0" />
</ContentPage.ToolbarItems>
若在定義工具列按鈕 ToolbarItem 的時候,想要在程式上顯示圖片代表這個按鈕,可以參考底下程式碼的作法;這是使用了
ToolbarItem.Icon
屬性項目(Property Element)來定義所代表的圖片,並且透過了OnPlatform
來針對不同平台下的圖片檔案所在位置。請特別注意,由於這些圖片檔案是位於每個作業系統平台專案內,因此,需要使用 x:TypeArguments="FileImageSource"
來指定這些圖片是存在於每個專案內的資源內。
+
<ToolbarItem
Command="{Binding 新增Command}"
Text="新增"
Order="Primary"
Priority="0">
<ToolbarItem.Icon>
<OnPlatform x:TypeArguments="FileImageSource"
iOS="Add.png"
Android="Add.png"
WinPhone="Assets/Images/Add.png" />
</ToolbarItem.Icon>
</ToolbarItem>
參考
標籤:
C#,
Xamarin,
Xamarin.Forms,
XAML
2016/09/25
Xamarin.Forms 取得核心PCL內的相依性注入容器,並且解析特定類別
由時候,您需要在 ViewModel 內,不透過建構式注入的方式,取得某個介面的實作物件,這個時候,您需要取得 Prism 的容器,自行解析出該介面的註冊實作類別。
想要取得 Prism 內的預設使用容器,可以使用底下程式碼,這個程式碼會回傳
IUnityContainer
IUnityContainer myContainer = (App.Current as PrismApplication).Container;
接著,您可以使用底下程式碼,取得某個介面(在這裡範例為 IMyClass)的實作物件,可以使用泛型
Resolve
方法,解析出實作介面的物件。fooObject = myContainer.Resolve<IMyClass>();
參考
標籤:
C#,
Xamarin,
Xamarin.Forms
Xamarin.Forms Android平台的退回實體按鍵控制
若是想要停用或者要控制實體退回鍵,需要在該頁面的 code-behind 加入底下方法
protected override bool OnBackButtonPressed()
{
return true;
}
標籤:
C#,
Xamarin,
Xamarin.Forms
2016/09/24
建立 Xamarin.Forms 新專案,發生 未正確載入套件 'XamarinAndroidPackage' 錯誤
當您準備要使用 Visual Studio 2015 來建立 Xamarin.Forms 的專案,此時,會發現到這樣的錯誤訊息
未正確載入套件 'XamarinAndroidPackage'。
這個問題能是因為組態變更或者安裝其他擴充功能所造成。您可以檢查檔案
....
取得詳細資訊。
重新啟動 Visual Studio 可以協助解決此問題。
要繼續顯示這項錯誤訊息嗎?
不論回答 Y / N,最終發現到,這個方案內是沒有 Xamarin.Android 的專案產生;而關閉 Visual Studio 且重新開啟 Visual Studio,並再度產生一次 Xamarin.Forms 專案,一樣的錯誤還是會出現,
解決問題方法
請使用檔案總管,切換到底下目錄下
C:\Users\%username%\AppData\Local\Microsoft\VisualStudio\14.0\ComponentModelCache
將這個目錄下的所有檔案刪除,重新開啟 Visual Studio 2015,就可以正常使用了
標籤:
C#,
Xamarin,
Xamarin.Forms
2016/09/23
Xamarin.Forms 如何回覆 Visual Studio 內的 Xamarin 到以前的版本 upgrade / downgrade
如何恢復 Visual Studio 內的 Xamarin 到以前的版本
若您在開發上遇到問題,想要回覆到較舊的 Xamarin 版本,可以從底下網頁,下載舊的版本,安裝起來就可以囉
標籤:
C#,
Xamarin,
Xamarin.Forms
2016/09/21
Xamarin.Forms iOS發佈之Mac端的操作
產生派送憑證(憑證密鑰) (Distribution Certificate)
在這裡,您需要第一次準備好一個
Certificate Signing Request (CSR)
,這裡所有的操作,都需要在 Mac 電腦完成- 點選
Launched
>其他
>鑰匙圈存取
- 從功能表中,點選
憑證輔助程式
>從憑證授權要求憑證
- 請在
輔助憑證程式
對話窗,請輸入電子郵件位置與一般名稱,在已將要求
選項,設定為儲存到磁碟
,最後,點選繼續
按鈕 - 您可以將這個憑證儲存到桌面,方便日後練習之用
- 建議可以將這個憑證檔案名稱,加入適合辨識文字
位置
為方便練習,可以選擇桌面
- 點選
儲存
按鈕 - 在
密鑰配對資訊
,直接點選繼續
按鈕 - 最後,憑證會建立在桌面上
產生派送憑證 (Distribution Certificate)
底下這兩個工作
建立開發環境用的憑證 (Certificates > Development)
, 建立正式環境用的憑證 (Certificates > Product)
,僅需要在這台電腦上做一次即可。建立開發環境用的憑證 (Certificates > Development)
- 在您的 Mac 電腦上開啟 Safari 瀏覽器,進入 Apple Developer 中心,並且登入該系統
- 點選左邊功能表的
Certificates, IDs, Profiles
連結 - 在
Certificates, IDs, Profiles
頁面內,點選Development
連結 - 在
iOS Certificates (Development)
頁面內,點選右上角+
加號 - 在
Add iOS "Certificate"
頁面,選擇iOS App Development
項目,接著點選最下方的Continue
按鈕 - 在
Add iOS "Certificate"
頁面的Request
標籤頁次,選擇最下方的Continue
按鈕這是因為,這個頁面要求要做到的事情,已經在前面的產生派送憑證(憑證密鑰) (Distribution Certificate)
階段已經完成了。 Add iOS "Certificate"
頁面的Generate
標籤頁次- 點選
Choose File...
,著選擇剛剛在桌面產生的 CSR 憑證 - 接著點選最下方的
Continue
按鈕
Add iOS "Certificate"
頁面的Download
標籤頁次- 點選
Download
按鈕,下載這個iOS Development
憑證 - 下載完成後,請點選剛剛下載的憑證,使其安裝到鑰匙圈存取內
- 最後,點選
Done
按鈕,完成相關工作。
建立正式環境用的憑證 (Certificates > Product)
- 在您的 Mac 電腦上開啟 Safari 瀏覽器,進入 Apple Developer 中心,並且登入該系統
- 點選左邊功能表的
Certificates, IDs, Profiles
連結 - 在
Certificates, IDs, Profiles
頁面內,點選Production
連結 - 在
iOS Certificates (Development)
頁面內,點選右上角+
加號 - 在
Add iOS "Certificate"
頁面,選擇iOS App Development
項目,接著點選最下方的Continue
按鈕 - 在
Add iOS "Certificate"
頁面的Request
標籤頁次,選擇最下方的Continue
按鈕這是因為,這個頁面要求要做到的事情,已經在前面的產生派送憑證(憑證密鑰) (Distribution Certificate)
階段已經完成了。 Add iOS "Certificate"
頁面的Generate
標籤頁次- 點選
Choose File...
,著選擇剛剛在桌面產生的 CSR 憑證 - 接著點選最下方的
Continue
按鈕
Add iOS "Certificate"
頁面的Download
標籤頁次- 點選
Download
按鈕,下載這個iOS Distribution
憑證 - 下載完成後,請點選剛剛下載的憑證,使其安裝到鑰匙圈存取內
- 最後,點選
Done
按鈕,完成相關工作。
產生派送提供描述檔 (Distribution Provisioning Profile)
產生 AppID
- 在您的 Mac 電腦上開啟 Safari 瀏覽器,進入 Apple Developer 中心,並且登入該系統
- 點選左邊功能表的
Certificates, IDs, Profiles
連結 - 在
Certificates, IDs, Profiles
頁面內,點選Identifiers
>App IDs
連結 - 點選
iOS App IDs
標題頁面右上方+
按鈕 - 在出現
Registering an App ID
頁面- 在標題
App ID Description
下的Name
欄位,輸入My First iOS App
- 在
Explicit App ID
標題下的Bundle ID
欄位內,輸入com.doggy.XFFirst
- 最後,在最下方點選
Continue
按鈕
- 在出現
Confirm your App ID
頁面,請點選底下Register
按鈕,最後,再點選Done
按鈕
產生 Device ID
- 在您的 Mac 電腦上開啟 Safari 瀏覽器,進入 Apple Developer 中心,並且登入該系統
- 點選左邊功能表的
Certificates, IDs, Profiles
連結 - 在
Certificates, IDs, Profiles
頁面內,點選Devices
>All
連結 - 點選
All Devices
標題頁面右上方+
按鈕 - 在
Registering a New Device or Multiple Devices
頁面- 在
Register Device
標題下方的Name
欄位,輸入Vulcan iPhone
- 在
Register Device
標題下方的UDID
,輸入您裝置的 UDID - 最後,點選下方的
Continue
要取得您裝置的 UDID- 將 iOS 裝置連上有安裝 iTune 的電腦上
- 在上方的
摘要
標籤頁次下,會看到序號
欄位內的值,使用滑鼠點擊該序號 - 此時,原先的序號欄位,會變成
識別碼 (UDID)
,這就是 iOS 裝置的 UDID,把它複製下來
- 當出現
Review and register
頁面,請點選底下的Register
按鈕
產生開發時期的派送提供描述檔
- 在您的 Mac 電腦上開啟 Safari 瀏覽器,進入 Apple Developer 中心,並且登入該系統
- 點選左邊功能表的
Certificates, IDs, Profiles
連結 - 在
Certificates, IDs, Profiles
頁面內,點選Provisioning Profiles
>Development
連結 - 點選
iOS Provision Profiles (Development)
標題頁面右上方+
按鈕 - 在
Add iOS Provisioning Profiles (Development)
頁面的Select TYpe
標籤頁次- 在
Development
標題下方選擇iOS App Development
- 點選最下方的
Continue
按鈕
- 當出現
Configure
標籤頁次- 選擇您要的
App ID
,在這裡選擇的是My First iOS App
,之後 - 點選
Continue
按鈕 - 選擇您的憑證,會出現在畫面上讓您挑選,之後,點選
Continue
按鈕 - 選擇要測試裝置,畫面上會出現您設定好的裝置,選擇好之後,點選
Continue
按鈕
- 當出現
Generate
標籤頁次下,在Profile Name
欄位中輸入MyFirst_Dev_Prov
,之後,點選Continue
按鈕 - 當出現
Download
標籤頁次下- 點選
Download
按鈕 - 當下載完成後,雙擊這個下載檔案,安裝這個 Provisioning Profile 到 XCode 內
- 點選
Done
按鈕
產生正是產品的派送提供描述檔
- 在您的 Mac 電腦上開啟 Safari 瀏覽器,進入 Apple Developer 中心,並且登入該系統
- 點選左邊功能表的
Certificates, IDs, Profiles
連結 - 在
Certificates, IDs, Profiles
頁面內,點選Provisioning Profiles
>Distribution
連結 - 點選
iOS Provision Profiles (Distribution)
標題頁面右上方+
按鈕 - 在
Add iOS Provisioning Profiles (Distribution)
頁面的Select TYpe
標籤頁次- 在
Distribution
標題下方選擇Ad Hoc
- 點選最下方的
Continue
按鈕
- 當出現
Configure
標籤頁次- 選擇您要的
App ID
,在這裡選擇的是My First iOS App
,之後 - 點選
Continue
按鈕 - 選擇您的憑證,會出現在畫面上讓您挑選,之後,點選
Continue
按鈕 - 選擇要測試裝置,畫面上會出現您設定好的裝置,選擇好之後,點選
Continue
按鈕
- 當出現
Generate
標籤頁次下,在Profile Name
欄位中輸入MyFirst_Prod_Prov
,之後,點選Continue
按鈕 - 當出現
Download
標籤頁次下- 點選
Download
按鈕 - 當下載完成後,雙擊這個下載檔案,安裝這個 Provisioning Profile 到 XCode 內
- 點選
Done
按鈕
Xamarin.iOS 內選擇提供描述檔
建立客製專屬平台的控制項視覺方案
- 首先,開啟您的 Visual Studio 2015
- 接著透過 Visual Studio 2015 功能表,選擇這些項目
檔案
>新增
>專案
準備新增一個專案。 - 接著,Visual Studio 2015 會顯示
新增專案
對話窗,請在這個對話窗上,進行選擇Visual C#
>Cross-Platform
>Blank Xaml App (Xamarin.Forms Portable)
- 接著,在最下方的
名稱
文字輸入盒處,輸入XFFirst
這個名稱,最後使用滑鼠右擊右下方的確定
按鈕。 - 當專案建立到一半,若您的開發環境還沒有建置與設定完成 Mac 電腦與 Xamarin Studio for Mac 系統,此時會看到
Xamarin Mac Agent Instructions
對話窗出現,這個對話窗是要提醒您進行與 Mac 電腦連線設定,這是因為,您無法在 Windows 作業系統進行 iOS 相關應用程式的建立與設計工作,而是需要透過 Mac 電腦安裝的 XCode 來協助您完成這些 iOS 應用程式的建立工作。不過,這不影響您繼續開發 Xamarin.Forms 的應用程式,只不過此時,您無法編譯與執行 iOS 的應用程式。 - 接著會看到
新的通用Windows專案
對話視窗,此時,您只需要按下確定
按鈕即可,此時,專案精靈會繼續完成相關平台的專案建立工作。 - 最後,整個新的 Xamarin.Forms 專案就建立完成了。
開始測試
- 滑鼠右擊
XFFirst.iOS
專案,選擇設定為起始專案
- 檢查 Visual Studio 上方的工具列之組態設定為 :
Debug
>iPhoneSimulator
- 滑鼠右擊
XFFirst.iOS
專案,選擇重建
確認可以在除錯&模擬器環境,正常重建這個專案。 - 設定 Visual Studio 上方的工具列之組態設定為 :
Release
>iPhoneSimulator
- 滑鼠雙擊
XFFirst.iOS
專案下的Properties
節點- 點選
iOS Application
標籤頁次- 在並勾選標題
iOS IPA Options
下方的Build ad-hoc/enterprise package (IPA)
檢查盒
- 在並勾選標題
- 點選
iOS IPA Options
標籤頁次- 在
Identifier
欄位內輸入com.doggy.XFFirst
- 在
Version
欄位內輸入1
- 點選
iOS Bundle Signing
標籤頁次- 在
iOS Bundle Signing
標題下方的Identity
欄位,選擇iPhoe Developer XXX
*在iOS Bundle Signing
標題下方的Provisioning Profile
欄位,選擇MyFirst_Dev_Prov
- 在
- 滑鼠右擊
XFFirst.iOS
專案,選擇重建
確認可以正常重建這個專案。若在 Mac 電腦上出現底下對話窗,請點選總是允許
- 滑鼠雙擊
XFFirst.iOS
專案下的Properties
節點- 點選
iOS Application
標籤頁次- 在並勾選標題
iOS IPA Options
下方的Build ad-hoc/enterprise package (IPA)
檢查盒
- 在並勾選標題
- 點選
iOS IPA Options
標籤頁次- 在
Identifier
欄位內輸入com.doggy.XFFirst
- 在
Version
欄位內輸入1
- 點選
iOS Bundle Signing
標籤頁次- 在
iOS Bundle Signing
標題下方的Identity
欄位,選擇iPhoe Distribution XXX
*在iOS Bundle Signing
標題下方的Provisioning Profile
欄位,選擇MyFirst_Dev_Prov
- 在
- 滑鼠右擊
XFFirst.iOS
專案,選擇重建
確認可以正常重建這個專案。
其他參考
此憑證的簽發人無效
當在
鑰匙圈存取
> 憑證
內發現到新建立的 Development / Distribution 憑證出現了 此憑證的簽發人無效
紅色錯誤訊息,請使用瀏覽器,打開下列網址,重新安裝憑證,即可解決問題
會發生這個問題,是因為欠缺底下憑證
標籤:
C#,
Xamarin,
Xamarin.Forms,
Xamarin.iOS
訂閱:
文章 (Atom)
HttpClient
類別所產生的物件,就可以進行相關 Get / Post / Put / Delete 等 RESTful 操作,並且這個類別是提供了非同步方法來呼叫,不會造成使用者操作介面被凍結的問題;不過,若您在核心 PCL 專案內取使用HttpClient
這個類別,卻發現到您是無法參考到這個物件,那麼,該如何解決此一問題呢?