HocKeyApp 與 Xamarin.Forms for Android
這份文章將會描述如何在 Xamarin.Forms 的 Android 平台下,使用 HocKeyApp 的相關功能。
第一版本專案 準備上架之用
首先,先產生一個新的 Android 應用程式,並且送到 HocKeyApp 上。
建立標籤式的樣板式頁面方案
-
首先,開啟您的 Visual Studio 2015
-
接著透過 Visual Studio 2015 功能表,選擇這些項目
檔案
> 新增
> 專案
準備新增一個專案。
-
接著,Visual Studio 2015 會顯示
新增專案
對話窗,請在這個對話窗上,進行選擇 Visual C#
>Cross-Platform
> Blank Xaml App (Xamarin.Forms Portable)
-
接著,在最下方的
名稱
文字輸入盒處,輸入 XFHocKey
這個名稱,最後使用滑鼠右擊右下方的 確定
按鈕。
-
當專案建立到一半,若您的開發環境還沒有建置與設定完成 Mac 電腦與 Xamarin Studio for Mac 系統,此時會看到
Xamarin Mac Agent Instructions
對話窗出現,這個對話窗是要提醒您進行與 Mac 電腦連線設定,這是因為,您無法在 Windows 作業系統進行 iOS 相關應用程式的建立與設計工作,而是需要透過 Mac 電腦安裝的 XCode 來協助您完成這些 iOS 應用程式的建立工作。不過,這不影響您繼續開發 Xamarin.Forms 的應用程式,只不過此時,您無法編譯與執行 iOS 的應用程式。
-
接著會看到
新的通用Windows專案
對話視窗,此時,您只需要按下 確定
按鈕即可,此時,專案精靈會繼續完成相關平台的專案建立工作。
-
最後,整個新的 Xamarin.Forms 專案就建立完成了。
首先,開啟您的 Visual Studio 2015
接著透過 Visual Studio 2015 功能表,選擇這些項目
檔案
> 新增
> 專案
準備新增一個專案。
接著,Visual Studio 2015 會顯示
新增專案
對話窗,請在這個對話窗上,進行選擇 Visual C#
>Cross-Platform
> Blank Xaml App (Xamarin.Forms Portable)
接著,在最下方的
名稱
文字輸入盒處,輸入 XFHocKey
這個名稱,最後使用滑鼠右擊右下方的 確定
按鈕。
當專案建立到一半,若您的開發環境還沒有建置與設定完成 Mac 電腦與 Xamarin Studio for Mac 系統,此時會看到
Xamarin Mac Agent Instructions
對話窗出現,這個對話窗是要提醒您進行與 Mac 電腦連線設定,這是因為,您無法在 Windows 作業系統進行 iOS 相關應用程式的建立與設計工作,而是需要透過 Mac 電腦安裝的 XCode 來協助您完成這些 iOS 應用程式的建立工作。不過,這不影響您繼續開發 Xamarin.Forms 的應用程式,只不過此時,您無法編譯與執行 iOS 的應用程式。
接著會看到
新的通用Windows專案
對話視窗,此時,您只需要按下 確定
按鈕即可,此時,專案精靈會繼續完成相關平台的專案建立工作。
最後,整個新的 Xamarin.Forms 專案就建立完成了。
建立使用者登入頁面
-
使用滑鼠右擊核心PCL節點,選擇
加入
> 新增項目
-
在
加入新項目 - XFHocKey
對話窗內
-
點選
Cross-Platform
> Forms Xaml Page
-
在下方名稱欄位內,輸入
LoginPage
-
點選
新增
按鈕
-
開啟
LoginPage.xaml
檔案,將底下 XAML 宣告標記複製到這個檔案內
使用滑鼠右擊核心PCL節點,選擇
加入
> 新增項目
在
加入新項目 - XFHocKey
對話窗內- 點選
Cross-Platform
>Forms Xaml Page
- 在下方名稱欄位內,輸入
LoginPage
- 點選
新增
按鈕
開啟
LoginPage.xaml
檔案,將底下 XAML 宣告標記複製到這個檔案內LoginPage.xaml
-
在這個頁面 XAML 宣告內容,定義了兩個文字輸入盒
Entry
用來讓使用者輸入帳號與密碼
-
宣告一個按鈕,用來讓使用者進行登入驗證之用
-
宣告一個名稱為
label錯誤提示
的 Label
控制項,用來顯示登入驗證失敗的錯誤訊息。
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="XFHocKey.LoginPage">
<ContentPage.Padding>30</ContentPage.Padding>
<StackLayout
Orientation="Vertical"
VerticalOptions="Center"
>
<Label x:Name="label錯誤提示"
TextColor="Red"
FontSize="24"
HorizontalOptions="Center"
IsVisible="False"
/>
<Label Text="帳號" />
<Entry x:Name="entry帳號"
Placeholder="請輸入登入帳號"
/>
<Label Text="密碼" />
<Entry x:Name="entry密碼"
Placeholder="請輸入登入密碼"
IsPassword="True"
/>
<Button x:Name="button登入"
Text="登入"
Clicked="Onbutton登入Clicked"/>
</StackLayout>
</ContentPage>
-
開啟
LoginPage.xaml.cs
檔案,將底下 C# 程式碼複製到這個檔案內
-
在按鈕事件內,當使用者輸入的帳號與密碼不是空白,則是為驗證失敗,需要顯示訊息
帳號與密碼錯誤
到頁面上。
-
若帳號與密碼驗證正確,則將頁面切換到
MainPage
頁面,並且清除導航堆疊內的其他項目;要清除導航堆疊內的項目,可以使用 Navigation.NavigationStack
取得所有導航堆疊內的項目,使用RemovePage
方法,就可以予以刪除,不過,要特別注意的是,導航堆疊使用的資料結構採用的是先進先出
的方式。
在這個頁面 XAML 宣告內容,定義了兩個文字輸入盒
Entry
用來讓使用者輸入帳號與密碼
宣告一個按鈕,用來讓使用者進行登入驗證之用
宣告一個名稱為
label錯誤提示
的 Label
控制項,用來顯示登入驗證失敗的錯誤訊息。<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="XFHocKey.LoginPage">
<ContentPage.Padding>30</ContentPage.Padding>
<StackLayout
Orientation="Vertical"
VerticalOptions="Center"
>
<Label x:Name="label錯誤提示"
TextColor="Red"
FontSize="24"
HorizontalOptions="Center"
IsVisible="False"
/>
<Label Text="帳號" />
<Entry x:Name="entry帳號"
Placeholder="請輸入登入帳號"
/>
<Label Text="密碼" />
<Entry x:Name="entry密碼"
Placeholder="請輸入登入密碼"
IsPassword="True"
/>
<Button x:Name="button登入"
Text="登入"
Clicked="Onbutton登入Clicked"/>
</StackLayout>
</ContentPage>
開啟
LoginPage.xaml.cs
檔案,將底下 C# 程式碼複製到這個檔案內- 在按鈕事件內,當使用者輸入的帳號與密碼不是空白,則是為驗證失敗,需要顯示訊息
帳號與密碼錯誤
到頁面上。 - 若帳號與密碼驗證正確,則將頁面切換到
MainPage
頁面,並且清除導航堆疊內的其他項目;要清除導航堆疊內的項目,可以使用Navigation.NavigationStack
取得所有導航堆疊內的項目,使用RemovePage
方法,就可以予以刪除,不過,要特別注意的是,導航堆疊使用的資料結構採用的是先進先出
的方式。
LoginPage.xaml.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;
namespace XFHocKey
{
public partial class LoginPage : ContentPage
{
public LoginPage()
{
InitializeComponent();
}
public async void Onbutton登入Clicked(object sender, EventArgs e)
{
if((entry帳號.Text??"") == "" && (entry密碼.Text??"") == "")
{
#region 帳號與密碼正確,切換到應用程式首頁
label錯誤提示.IsVisible = false;
label錯誤提示.Text = "";
var NextPage = new MainPage();
await Navigation.PushAsync(NextPage);
清除導航頁面堆疊項目();
#endregion
}
else
{
#region 帳號與密碼不正確,顯示一個錯誤提示訊息
label錯誤提示.IsVisible = true;
label錯誤提示.Text = "帳號與密碼錯誤";
#endregion
}
}
/// <summary>
/// 此時,將無法使用硬體回上一頁按鍵,回到這個頁面
/// </summary>
private void 清除導航頁面堆疊項目()
{
var 頁面堆疊 = Navigation.NavigationStack;
while (頁面堆疊.Count > 1)
{
var page = 頁面堆疊.First();
if (page != null)
{
Navigation.RemovePage(page);
}
else
{
break;
}
}
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;
namespace XFHocKey
{
public partial class LoginPage : ContentPage
{
public LoginPage()
{
InitializeComponent();
}
public async void Onbutton登入Clicked(object sender, EventArgs e)
{
if((entry帳號.Text??"") == "" && (entry密碼.Text??"") == "")
{
#region 帳號與密碼正確,切換到應用程式首頁
label錯誤提示.IsVisible = false;
label錯誤提示.Text = "";
var NextPage = new MainPage();
await Navigation.PushAsync(NextPage);
清除導航頁面堆疊項目();
#endregion
}
else
{
#region 帳號與密碼不正確,顯示一個錯誤提示訊息
label錯誤提示.IsVisible = true;
label錯誤提示.Text = "帳號與密碼錯誤";
#endregion
}
}
/// <summary>
/// 此時,將無法使用硬體回上一頁按鍵,回到這個頁面
/// </summary>
private void 清除導航頁面堆疊項目()
{
var 頁面堆疊 = Navigation.NavigationStack;
while (頁面堆疊.Count > 1)
{
var page = 頁面堆疊.First();
if (page != null)
{
Navigation.RemovePage(page);
}
else
{
break;
}
}
}
}
}
修正 MainPage 首頁頁面
- 開啟
MainPage.xaml
檔案,將底下 XAML 宣告標記複製到這個檔案內
MainPage.xaml
檔案,將底下 XAML 宣告標記複製到這個檔案內MainPage.xaml
這個頁面很簡單,僅顯示一串文字,說明這個頁面是主頁面。
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:XFHocKey"
x:Class="XFHocKey.MainPage">
<ContentPage.Padding>30</ContentPage.Padding>
<StackLayout
Orientation="Vertical"
VerticalOptions="Center"
>
<Label
HorizontalOptions="Center"
Text="主頁面" FontSize="36" />
</StackLayout>
</ContentPage>
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:XFHocKey"
x:Class="XFHocKey.MainPage">
<ContentPage.Padding>30</ContentPage.Padding>
<StackLayout
Orientation="Vertical"
VerticalOptions="Center"
>
<Label
HorizontalOptions="Center"
Text="主頁面" FontSize="36" />
</StackLayout>
</ContentPage>
修正 App.xaml.cs
-
開啟
App.xaml.cs
檔案,將底下 C# 程式碼複製到這個檔案內
這裡只有修正一行程式碼,那就是要將整個 Xamarin.Forms 的進入點,從原先的 ContentPage 改成 NavigationPage,這樣,在這個應用程式顯示過程中,就可以使用導航頁面的功能來切換到不同頁面了。
開啟
App.xaml.cs
檔案,將底下 C# 程式碼複製到這個檔案內
這裡只有修正一行程式碼,那就是要將整個 Xamarin.Forms 的進入點,從原先的 ContentPage 改成 NavigationPage,這樣,在這個應用程式顯示過程中,就可以使用導航頁面的功能來切換到不同頁面了。
App.xaml.cs
將 App 類別的建構式內容,以底下程式碼取代。
InitializeComponent();
//MainPage = new XFHocKey.MainPage();
// 這裡使用 NavigationPage ,這是因為當登入帳密正確之後,需要切到 MainPage 頁面
MainPage = new NavigationPage(new LoginPage());
InitializeComponent();
//MainPage = new XFHocKey.MainPage();
// 這裡使用 NavigationPage ,這是因為當登入帳密正確之後,需要切到 MainPage 頁面
MainPage = new NavigationPage(new LoginPage());
修正 XFHocKey.Droid 專案定義
這裡是要修正原生 Android 的專案內容。
MainActivity.cs
開啟 XFHocKey.Droid 專案內的 MainActivity.cs
檔案,將底下 C# 程式碼複製到這個檔案內
這裡僅僅定義這個主要 Activity 的名稱為 多奇集團 行動儀表板
(Label = "多奇集團 行動儀表板"),也就是應用程式圖示的名稱。
using System;
using Android.App;
using Android.Content.PM;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;
using Xamarin.Forms;
namespace XFHocKey.Droid
{
[Activity(Label = "多奇集團 行動儀表板", Icon = "@drawable/icon", Theme = "@style/MainTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
{
protected override void OnCreate(Bundle bundle)
{
TabLayoutResource = Resource.Layout.Tabbar;
ToolbarResource = Resource.Layout.Toolbar;
base.OnCreate(bundle);
global::Xamarin.Forms.Forms.Init(this, bundle);
LoadApplication(new App());
}
}
}
MainActivity.cs
檔案,將底下 C# 程式碼複製到這個檔案內多奇集團 行動儀表板
(Label = "多奇集團 行動儀表板"),也就是應用程式圖示的名稱。using System;
using Android.App;
using Android.Content.PM;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;
using Xamarin.Forms;
namespace XFHocKey.Droid
{
[Activity(Label = "多奇集團 行動儀表板", Icon = "@drawable/icon", Theme = "@style/MainTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
{
protected override void OnCreate(Bundle bundle)
{
TabLayoutResource = Resource.Layout.Tabbar;
ToolbarResource = Resource.Layout.Toolbar;
base.OnCreate(bundle);
global::Xamarin.Forms.Forms.Init(this, bundle);
LoadApplication(new App());
}
}
}
設定 XFHocKey.Droid 屬性
修正專案屬性,可以用於讓使用者知道所安裝的應用程式的版本資訊與應用程式所代表的圖示圖片。
每次應用程式有異動且準備要進行提交到 HocKeyApp 後台的時候,一定要切記,要來修改這些資訊,免得會影響自動升級提醒與使用者不知道安裝與測試哪個版本的問題。
-
滑鼠雙擊
XFHocKey.Droid
專案內的 Properties
節點
-
點選左方的
Android Manifest
標籤頁次
-
在
Applicatoin name
欄位內輸入 多奇集團 行動儀表板
-
在
Package name
欄位內輸入 com.miniasp.dashboard
-
在
Applicatoin Icon
下拉選單內選擇 @drawable/icon
-
在
Version number
內輸入 1
-
在
Version name
內輸入 1.0
每次應用程式有異動且準備要進行提交到 HocKeyApp 後台的時候,一定要切記,要來修改這些資訊,免得會影響自動升級提醒與使用者不知道安裝與測試哪個版本的問題。
滑鼠雙擊
XFHocKey.Droid
專案內的 Properties
節點
點選左方的
Android Manifest
標籤頁次
在
Applicatoin name
欄位內輸入 多奇集團 行動儀表板
在
Package name
欄位內輸入 com.miniasp.dashboard
在
Applicatoin Icon
下拉選單內選擇 @drawable/icon
在
Version number
內輸入 1
在
Version name
內輸入 1.0
建置專案
-
在上方工具列的專案組態下拉選單,選擇
Release
組態,作為專案要建置的組態
切換到 Release
組態,這是因為需要透過建置完成之後,可以順利產生所需要的 .apk檔案
-
滑鼠右擊
XFHocKey.Droid
專案節點,選擇 重建
-
當專案重建完成之後,滑鼠右擊
XFHocKey.Droid
專案節點,選擇 Export Android Package (.apk)
-
滑鼠右擊
XFHocKey.Droid
專案節點,選擇 在檔案總管中開啟資料夾
,接著,在檔案總管中切換到bin/Release
目錄下,您會看到 com.miniasp.dashboard-Signed.apk
這個 .apk
檔案
請將該檔案總管留下,因為,等下或者之後,需要拖拉這個 com.miniasp.dashboard-Signed.apk
檔案到 HocKeyApp 儀表板內。
在上方工具列的專案組態下拉選單,選擇
Release
組態,作為專案要建置的組態切換到Release
組態,這是因為需要透過建置完成之後,可以順利產生所需要的 .apk檔案
滑鼠右擊
XFHocKey.Droid
專案節點,選擇 重建
當專案重建完成之後,滑鼠右擊
XFHocKey.Droid
專案節點,選擇 Export Android Package (.apk)
滑鼠右擊
XFHocKey.Droid
專案節點,選擇 在檔案總管中開啟資料夾
,接著,在檔案總管中切換到bin/Release
目錄下,您會看到 com.miniasp.dashboard-Signed.apk
這個 .apk
檔案請將該檔案總管留下,因為,等下或者之後,需要拖拉這個com.miniasp.dashboard-Signed.apk
檔案到 HocKeyApp 儀表板內。
HocKeyApp
建立 HocKeyApp 帳號與ID
-
進入到 HocKeyApp 的儀表板網頁
https://rink.hockeyapp.net/manage/dashboard
-
您可以使用社群帳號登入到 HocKeyApp 內或者直接使用 HocKeyApp 的帳號與密碼來進行驗證。
若您使用社群帳號登入,但是,尚未註冊過 HocKeyApp 的帳號與密碼,此時,會出現
Complete Your Profile
的頁面,請您填寫關於 HocKeyApp 帳號相關資訊,並點下 Register
已完成註冊程序。
請記得要勾選 I'm a developer
這個檢查盒
進入到 HocKeyApp 的儀表板網頁
https://rink.hockeyapp.net/manage/dashboard
您可以使用社群帳號登入到 HocKeyApp 內或者直接使用 HocKeyApp 的帳號與密碼來進行驗證。
若您使用社群帳號登入,但是,尚未註冊過 HocKeyApp 的帳號與密碼,此時,會出現
Complete Your Profile
的頁面,請您填寫關於 HocKeyApp 帳號相關資訊,並點下 Register
已完成註冊程序。請記得要勾選I'm a developer
這個檢查盒
上傳應用程式套件
-
您可以使用拖拉的方式來建立一個測試項目
從上面步驟的檔案總管,找您
com.miniasp.dashboard-Signed.apk
檔案,拖拉到儀表板上
此時,檔案就會開始上傳到 HocKeyApp 儀表板內
-
當上傳完成後,您需要點選
Release
按鈕,準備進行釋出這個版本
在底下,有看到一個欄位 App ID
,請將這個值先複製下來,等下會用到。
-
請在要釋出應用程式的第一個步驟頁面
Notes
中間,可以輸入關於此次應用程式釋出的說明文字,之後,點選,Next Step
按鈕
-
在第二步驟的
Status
頁面,可以直接點選 Next Step
按鈕
-
在第三步驟的
Notify
頁面,可以直接點選 Send
按鈕
-
最後,會顯示此次釋出版本的相關資訊,請點選
Done
按鈕
-
恭喜您,您已經將您的應用程式在 HocKeyApp 儀表板上架成功了,請點選左上角的回上一頁的箭頭
-
由於這個版本尚未具備 HocKeyApp 任何能力,因此,我們需要馬上製作出第二個具有 HocKeyApp 處理能力的 Android 安裝套件
您可以使用拖拉的方式來建立一個測試項目
從上面步驟的檔案總管,找您
com.miniasp.dashboard-Signed.apk
檔案,拖拉到儀表板上
此時,檔案就會開始上傳到 HocKeyApp 儀表板內
當上傳完成後,您需要點選
Release
按鈕,準備進行釋出這個版本在底下,有看到一個欄位App ID
,請將這個值先複製下來,等下會用到。
- 請在要釋出應用程式的第一個步驟頁面
Notes
中間,可以輸入關於此次應用程式釋出的說明文字,之後,點選,Next Step
按鈕 - 在第二步驟的
Status
頁面,可以直接點選Next Step
按鈕 - 在第三步驟的
Notify
頁面,可以直接點選Send
按鈕 - 最後,會顯示此次釋出版本的相關資訊,請點選
Done
按鈕 - 恭喜您,您已經將您的應用程式在 HocKeyApp 儀表板上架成功了,請點選左上角的回上一頁的箭頭
由於這個版本尚未具備 HocKeyApp 任何能力,因此,我們需要馬上製作出第二個具有 HocKeyApp 處理能力的 Android 安裝套件
第二版本專案 修正具有 HocKeyApp 提供的功能
第一個版本的應用程式已將在 HocKeyApp 後台上架了,不過,此時,剛剛上架的應用程式尚未具備 HocKeyApp 任何能力,例如:應用程式崩壞回報、使用者使用紀錄、使用者回報、應用程式需要升級提醒與協助升級等功能。
這是因為在進行第一次提交 App 到 HocKeyApp 後台之前,您尚未取得 HocKeyApp App_ID 值,一直要到您的應用程式出現在 HocKeyApp 後台,才能夠取得 App_ID;所以,在此,將會說明如何透過 App_ID 與加入一些程式碼,就可以讓您的應用程式,具有 HocKeyApp 提供的功能。
MainPage.xaml
-
在核心PCL專案內,開啟
MainPage.xaml
檔案,將底下 XAML 宣告標記複製到這個檔案內
- 這裡,僅加入一個按鈕到首頁頁面內,這是希望刻意設計出,當使用者按下了這個按鈕,應用程式會自動閃退,並且確認 HocKeyApp 會有捕捉到這些例外異常資訊,並且會在後端儲存起來。
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:XFHocKey"
x:Class="XFHocKey.MainPage">
<ContentPage.Padding>30</ContentPage.Padding>
<StackLayout
Orientation="Vertical"
VerticalOptions="Center"
>
<Label
HorizontalOptions="Center"
Text="主頁面" FontSize="36" />
<Button x:Name="button我崩潰了"
Text="按下我,就會崩潰了"
Clicked="Onbutton我崩潰了Clicked"
/>
</StackLayout>
</ContentPage>
-
在核心PCL專案內,開啟
MainPage.xaml.cs
檔案,將底下 C# 程式碼複製到這個檔案內
- 這裡的按鈕處理事件,將會丟出一個例外異常,此時,會透過 HocKeyApp 機制,將這個例外異常記錄下來。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;
namespace XFHocKey
{
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
}
public void Onbutton我崩潰了Clicked(object sender, EventArgs e)
{
// 自己發出一個例外異常,HocKeyApp 將會捕捉到這個例外異常的相關資訊
throw new Exception("使用者自己選擇要崩潰了");
}
}
}
在核心PCL專案內,開啟
MainPage.xaml
檔案,將底下 XAML 宣告標記複製到這個檔案內- 這裡,僅加入一個按鈕到首頁頁面內,這是希望刻意設計出,當使用者按下了這個按鈕,應用程式會自動閃退,並且確認 HocKeyApp 會有捕捉到這些例外異常資訊,並且會在後端儲存起來。
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:XFHocKey"
x:Class="XFHocKey.MainPage">
<ContentPage.Padding>30</ContentPage.Padding>
<StackLayout
Orientation="Vertical"
VerticalOptions="Center"
>
<Label
HorizontalOptions="Center"
Text="主頁面" FontSize="36" />
<Button x:Name="button我崩潰了"
Text="按下我,就會崩潰了"
Clicked="Onbutton我崩潰了Clicked"
/>
</StackLayout>
</ContentPage>
在核心PCL專案內,開啟
MainPage.xaml.cs
檔案,將底下 C# 程式碼複製到這個檔案內- 這裡的按鈕處理事件,將會丟出一個例外異常,此時,會透過 HocKeyApp 機制,將這個例外異常記錄下來。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;
namespace XFHocKey
{
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
}
public void Onbutton我崩潰了Clicked(object sender, EventArgs e)
{
// 自己發出一個例外異常,HocKeyApp 將會捕捉到這個例外異常的相關資訊
throw new Exception("使用者自己選擇要崩潰了");
}
}
}
MainActivity.cs
-
滑鼠右擊
XFHocKey.Droid
專案內的參考節點,把 HockeySDK.Xamarin
這個 NuGet 套件,安裝到這個專案內;請記得要勾選 包含搶鮮版
。您不需要在核心PCL專案內安裝這個套件,僅僅需要在原生應用程式專案內安裝這個套件即可;不過,當您需要在核心PCL專案內想要呼叫 HocKeyApp 系統功能(存在於原生專案內)的話,在這裡,使用訊息中心來做到這樣效果。
-
在 XFHocKey.Droid 專案內,開啟
MainActivity.cs
檔案,將底下 C# 程式碼複製到這個檔案內
-
其中,變數
HocKeyApp_ID
的設定值,就是前面取得的 HocKeyApp 的 App_ID 的值,請將您實際的 HockeyApp App_ID,複製到這個變數預設值。
using System;
using Android.App;
using Android.Content.PM;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;
using HockeyApp.Android;
using Xamarin.Forms;
namespace XFHocKey.Droid
{
[Activity(Label = "多奇集團 行動儀表板", Icon = "@drawable/icon", Theme = "@style/MainTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
{
public string HocKeyApp_ID = "ee4d14e6b55d41569395c176e9720ebb";
protected override void OnCreate(Bundle bundle)
{
TabLayoutResource = Resource.Layout.Tabbar;
ToolbarResource = Resource.Layout.Toolbar;
base.OnCreate(bundle);
global::Xamarin.Forms.Forms.Init(this, bundle);
LoadApplication(new App());
// 註冊程式異常崩壞的回報機制
CrashManager.Register(this, HocKeyApp_ID);
// 檢查是否有新版本推出,讓使用者可以選擇是否要升級
CheckForUpdates();
}
void CheckForUpdates()
{
// Remove this for store builds!
UpdateManager.Register(this, HocKeyApp_ID);
}
void UnregisterManagers()
{
UpdateManager.Unregister();
}
protected override void OnPause()
{
base.OnPause();
UnregisterManagers();
}
protected override void OnDestroy()
{
base.OnDestroy();
UnregisterManagers();
}
}
}
滑鼠右擊
XFHocKey.Droid
專案內的參考節點,把 HockeySDK.Xamarin
這個 NuGet 套件,安裝到這個專案內;請記得要勾選 包含搶鮮版
。您不需要在核心PCL專案內安裝這個套件,僅僅需要在原生應用程式專案內安裝這個套件即可;不過,當您需要在核心PCL專案內想要呼叫 HocKeyApp 系統功能(存在於原生專案內)的話,在這裡,使用訊息中心來做到這樣效果。
在 XFHocKey.Droid 專案內,開啟
MainActivity.cs
檔案,將底下 C# 程式碼複製到這個檔案內
其中,變數
HocKeyApp_ID
的設定值,就是前面取得的 HocKeyApp 的 App_ID 的值,請將您實際的 HockeyApp App_ID,複製到這個變數預設值。using System;
using Android.App;
using Android.Content.PM;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;
using HockeyApp.Android;
using Xamarin.Forms;
namespace XFHocKey.Droid
{
[Activity(Label = "多奇集團 行動儀表板", Icon = "@drawable/icon", Theme = "@style/MainTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
{
public string HocKeyApp_ID = "ee4d14e6b55d41569395c176e9720ebb";
protected override void OnCreate(Bundle bundle)
{
TabLayoutResource = Resource.Layout.Tabbar;
ToolbarResource = Resource.Layout.Toolbar;
base.OnCreate(bundle);
global::Xamarin.Forms.Forms.Init(this, bundle);
LoadApplication(new App());
// 註冊程式異常崩壞的回報機制
CrashManager.Register(this, HocKeyApp_ID);
// 檢查是否有新版本推出,讓使用者可以選擇是否要升級
CheckForUpdates();
}
void CheckForUpdates()
{
// Remove this for store builds!
UpdateManager.Register(this, HocKeyApp_ID);
}
void UnregisterManagers()
{
UpdateManager.Unregister();
}
protected override void OnPause()
{
base.OnPause();
UnregisterManagers();
}
protected override void OnDestroy()
{
base.OnDestroy();
UnregisterManagers();
}
}
}
設定 XFHocKey.Droid 屬性
-
滑鼠雙擊
XFHocKey.Droid
專案內的 Properties
節點
-
點選左方的
Android Manifest
標籤頁次
-
在
Version number
內輸入 2
-
在
Version name
內輸入 1.1
滑鼠雙擊
XFHocKey.Droid
專案內的 Properties
節點
點選左方的
Android Manifest
標籤頁次
在
Version number
內輸入 2
在
Version name
內輸入 1.1
建置專案
-
在上方工具列的專案組態下拉選單,選擇
Release
組態,作為專案要建置的組態
-
滑鼠右擊
XFHocKey.Droid
專案節點,選擇 重建
-
當專案重建完成之後,滑鼠右擊
XFHocKey.Droid
專案節點,選擇 Export Android Package (.apk)
-
回到剛剛已經打開的檔案總管,您看到新的
com.miniasp.dashboard-Signed.apk
檔案又產生出來了。
在上方工具列的專案組態下拉選單,選擇
Release
組態,作為專案要建置的組態
滑鼠右擊
XFHocKey.Droid
專案節點,選擇 重建
當專案重建完成之後,滑鼠右擊
XFHocKey.Droid
專案節點,選擇 Export Android Package (.apk)
回到剛剛已經打開的檔案總管,您看到新的
com.miniasp.dashboard-Signed.apk
檔案又產生出來了。上傳第二版本應用程式套件
-
點選 HocKeyApp 網頁右上方的底下圖示,這樣就可以回到 HocKeyApp 儀表板首頁
-
請將新產生的
com.miniasp.dashboard-Signed.apk
檔案從檔案總管上,拖拉到 HocKeyApp 儀表板網頁上,接著放開,使其上傳更新版本應用程式到 HocKeyApp 內。
-
當上傳完成後,會直接進入到釋出應用程式的第一個步驟頁面
Notes
請在 Notes 欄位中,輸入 這是具有綁定 HocKeyApp 機制的應用程式更新
-
請依序點選
Next Step
按鈕 > Next Step
按鈕 > Send
按鈕
-
最後,會顯示此次釋出版本的相關資訊,請點選
Done
按鈕
-
恭喜您,您已經將您的第二版本應用程式在 HocKeyApp 儀表板上架成功了,請點選左上角的回上一頁的箭頭
-
此時,您可以在網頁最上方看到,
Versions(2)
, Crashes(0)
, Feedback(0)
, Users(2)
,分別表示,這個應用程式 (App),現在有:
-
Versions(2)
有兩個版本上傳
-
Crashes(0)
使用者使用上,沒有崩壞紀錄
-
Feedback(0)
沒有任何使用者有提出建議
-
Users(2)
現在有兩個使用者可以進行餐與測試
點選 HocKeyApp 網頁右上方的底下圖示,這樣就可以回到 HocKeyApp 儀表板首頁
請將新產生的
com.miniasp.dashboard-Signed.apk
檔案從檔案總管上,拖拉到 HocKeyApp 儀表板網頁上,接著放開,使其上傳更新版本應用程式到 HocKeyApp 內。
當上傳完成後,會直接進入到釋出應用程式的第一個步驟頁面
Notes
請在 Notes 欄位中,輸入
這是具有綁定 HocKeyApp 機制的應用程式更新
- 請依序點選
Next Step
按鈕 >Next Step
按鈕 >Send
按鈕 - 最後,會顯示此次釋出版本的相關資訊,請點選
Done
按鈕 - 恭喜您,您已經將您的第二版本應用程式在 HocKeyApp 儀表板上架成功了,請點選左上角的回上一頁的箭頭
- 此時,您可以在網頁最上方看到,
Versions(2)
,Crashes(0)
,Feedback(0)
,Users(2)
,分別表示,這個應用程式 (App),現在有:Versions(2)
有兩個版本上傳Crashes(0)
使用者使用上,沒有崩壞紀錄Feedback(0)
沒有任何使用者有提出建議Users(2)
現在有兩個使用者可以進行餐與測試
指派測試人員
-
現在需要邀請使用者來進行測試
-
請在應用程式明細頁面(如下圖),點選
Invite User
按鈕,邀請使用者來餐與測試
-
請在
Invite User
頁面下進行底下操作
-
在
Email
欄位,填入測試者的電子郵件信箱
-
Role
欄位維持 Tester
-
可以在 `Message (optional) 欄位,填入給測試者要知道的內容,例如:這是 多奇集團 行動儀表板 for Android 版本,請您協助幫忙測試。
- 最後點選
Save
按鈕
現在需要邀請使用者來進行測試
- 請在應用程式明細頁面(如下圖),點選
Invite User
按鈕,邀請使用者來餐與測試
請在
Invite User
頁面下進行底下操作- 在
Email
欄位,填入測試者的電子郵件信箱 Role
欄位維持Tester
- 可以在 `Message (optional) 欄位,填入給測試者要知道的內容,例如:這是 多奇集團 行動儀表板 for Android 版本,請您協助幫忙測試。
- 最後點選
Save
按鈕
應用程式測試者的操作環境
-
打開測試使用者信箱,裡面會有 HocKeyApp 寄來的一封通知郵件,如下圖所示
-
點選
Download & Install
連結
-
此時,選擇使用 Chrome 瀏覽器打開這個網址,點選
HocKeyApp for Testers
這個項目,準備進行安裝 HocKeyApp 用戶端
-
點選
Download
按鈕,下載 HocKeyApp 的安裝用 APK 檔案;當下載完後,請安裝這個 APK 檔案
-
當 HocKeyApp 用戶端程式執行後,請點選
SIGN IN
進行登入到 HocKeyApp
-
當登入完成之後,請點選左上角的漢堡按鈕,當導航面板出現之後,請點選
Invites
這個選項,您就會看到被邀請測試的App了。
-
在看到
多奇集團 行動儀表板
App,點選這個項目,把它安裝起來。
-
安裝完成後,
多奇集團 行動儀表板
App 就會直接執行了
-
當
多奇集團 行動儀表板
App 執行後,在帳號或密碼內,不會輸入甚麼內容,而點選了 登入
按鈕,則會出現錯誤訊息
-
若帳號與密碼沒有輸入任何值,而點選了
登入
按鈕,則會進入首頁。
-
在首頁下,若點選了
按下我,就會崩潰了
按鈕,這個應用程式就會閃退
-
請回到程式集內,找到
多奇集團 行動儀表板
App 重新執行,當出現下圖畫面,請點選 Send Report
按鈕,讓這個例外異常資訊送到 HocKeyApp 系統內。
-
最後,請反覆在操作兩次例外異常,讓後端的 HocKeyApp 伺服器可以收到三個例外異常報告。
-
回到應用程式首頁,您就會看到如下圖,HocKeyApp將會告訴您,他收到了三個例外異常紀錄
點選上圖的例外異常紀錄,將可以看到當時發生異常的呼叫堆疊
打開測試使用者信箱,裡面會有 HocKeyApp 寄來的一封通知郵件,如下圖所示
點選
Download & Install
連結
此時,選擇使用 Chrome 瀏覽器打開這個網址,點選
HocKeyApp for Testers
這個項目,準備進行安裝 HocKeyApp 用戶端
點選
Download
按鈕,下載 HocKeyApp 的安裝用 APK 檔案;當下載完後,請安裝這個 APK 檔案
當 HocKeyApp 用戶端程式執行後,請點選
SIGN IN
進行登入到 HocKeyApp
當登入完成之後,請點選左上角的漢堡按鈕,當導航面板出現之後,請點選
Invites
這個選項,您就會看到被邀請測試的App了。
在看到
多奇集團 行動儀表板
App,點選這個項目,把它安裝起來。
安裝完成後,
多奇集團 行動儀表板
App 就會直接執行了
當
多奇集團 行動儀表板
App 執行後,在帳號或密碼內,不會輸入甚麼內容,而點選了 登入
按鈕,則會出現錯誤訊息
若帳號與密碼沒有輸入任何值,而點選了
登入
按鈕,則會進入首頁。- 在首頁下,若點選了
按下我,就會崩潰了
按鈕,這個應用程式就會閃退 - 請回到程式集內,找到
多奇集團 行動儀表板
App 重新執行,當出現下圖畫面,請點選Send Report
按鈕,讓這個例外異常資訊送到 HocKeyApp 系統內。 - 最後,請反覆在操作兩次例外異常,讓後端的 HocKeyApp 伺服器可以收到三個例外異常報告。
回到應用程式首頁,您就會看到如下圖,HocKeyApp將會告訴您,他收到了三個例外異常紀錄
點選上圖的例外異常紀錄,將可以看到當時發生異常的呼叫堆疊
第三版本專案 修正使用者可以回報意見功能
MainPage.xaml
- 在核心PCL專案內,開啟
MainPage.xaml
檔案,將底下 XAML 宣告標記複製到這個檔案內
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:XFHocKey"
x:Class="XFHocKey.MainPage">
<ContentPage.Padding>30</ContentPage.Padding>
<StackLayout
Orientation="Vertical"
VerticalOptions="Center"
>
<Label
HorizontalOptions="Center"
Text="主頁面" FontSize="36" />
<Button x:Name="button我崩潰了"
Text="按下我,就會崩潰了"
Clicked="Onbutton我崩潰了Clicked"
/>
<Button x:Name="button我有話要說"
Text="我有話要說"
Clicked="Onbutton我有話要說Clicked"
/>
</StackLayout>
</ContentPage>
- 在核心PCL專案內,開啟
MainPage.xaml.cs
檔案,將底下 C# 程式碼複製到這個檔案內
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;
namespace XFHocKey
{
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
}
public void Onbutton我崩潰了Clicked(object sender, EventArgs e)
{
// 自己發出一個例外異常,HocKeyApp 將會捕捉到這個例外異常的相關資訊
throw new Exception("使用者自己選擇要崩潰了");
}
public void Onbutton我有話要說Clicked(object sender, EventArgs e)
{
// 透過訊息中心發出一個請求,可以使用 HocKeyApp 的 FeedbackManager 回報頁面
MessagingCenter.Send<我要回報>(new 我要回報(), "是的,請說");
}
}
}
MainPage.xaml
檔案,將底下 XAML 宣告標記複製到這個檔案內<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:XFHocKey"
x:Class="XFHocKey.MainPage">
<ContentPage.Padding>30</ContentPage.Padding>
<StackLayout
Orientation="Vertical"
VerticalOptions="Center"
>
<Label
HorizontalOptions="Center"
Text="主頁面" FontSize="36" />
<Button x:Name="button我崩潰了"
Text="按下我,就會崩潰了"
Clicked="Onbutton我崩潰了Clicked"
/>
<Button x:Name="button我有話要說"
Text="我有話要說"
Clicked="Onbutton我有話要說Clicked"
/>
</StackLayout>
</ContentPage>
MainPage.xaml.cs
檔案,將底下 C# 程式碼複製到這個檔案內using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;
namespace XFHocKey
{
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
}
public void Onbutton我崩潰了Clicked(object sender, EventArgs e)
{
// 自己發出一個例外異常,HocKeyApp 將會捕捉到這個例外異常的相關資訊
throw new Exception("使用者自己選擇要崩潰了");
}
public void Onbutton我有話要說Clicked(object sender, EventArgs e)
{
// 透過訊息中心發出一個請求,可以使用 HocKeyApp 的 FeedbackManager 回報頁面
MessagingCenter.Send<我要回報>(new 我要回報(), "是的,請說");
}
}
}
我要回報
-
使用滑鼠右擊PCL專案節點,選擇
加入
> 類別
,並在底下名稱欄位輸入 我要回報
-
使用底下程式碼替換掉剛剛產生的檔案內容
使用滑鼠右擊PCL專案節點,選擇
加入
> 類別
,並在底下名稱欄位輸入 我要回報
使用底下程式碼替換掉剛剛產生的檔案內容
我要回報.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace XFHocKey
{
public class 我要回報
{
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace XFHocKey
{
public class 我要回報
{
}
}
MainActivity
- 打開
XFHocKey.Droid
專案內的 MainActivity.cs
,使用底下程式碼替換
XFHocKey.Droid
專案內的 MainActivity.cs
,使用底下程式碼替換MainActivity.cs
using System;
using Android.App;
using Android.Content.PM;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;
using HockeyApp.Android;
using Xamarin.Forms;
namespace XFHocKey.Droid
{
[Activity(Label = "多奇集團 行動儀表板", Icon = "@drawable/icon", Theme = "@style/MainTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
{
public string HocKeyApp_ID = "ee4d14e6b55d41569395c176e9720ebb";
protected override void OnCreate(Bundle bundle)
{
TabLayoutResource = Resource.Layout.Tabbar;
ToolbarResource = Resource.Layout.Toolbar;
base.OnCreate(bundle);
global::Xamarin.Forms.Forms.Init(this, bundle);
LoadApplication(new App());
// 註冊程式異常崩壞的回報機制
CrashManager.Register(this, HocKeyApp_ID);
// 檢查是否有新版本推出,讓使用者可以選擇是否要升級
CheckForUpdates();
// 訊息中心訂閱者,當使用者在核心PCL內按下按鈕之後,訊息中心將會收到這個訊息通知,並且進行處理
MessagingCenter.Subscribe<我要回報>(this, "是的,請說", (sender) =>
{
#region 讓使用者填寫意見,並記錄到 HocKeyApp
FeedbackManager.Register(this, HocKeyApp_ID);
FeedbackManager.ShowFeedbackActivity(ApplicationContext);
#endregion
});
}
void CheckForUpdates()
{
// Remove this for store builds!
UpdateManager.Register(this, HocKeyApp_ID);
}
void UnregisterManagers()
{
UpdateManager.Unregister();
}
protected override void OnPause()
{
base.OnPause();
UnregisterManagers();
}
protected override void OnDestroy()
{
base.OnDestroy();
UnregisterManagers();
}
}
}
using System;
using Android.App;
using Android.Content.PM;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;
using HockeyApp.Android;
using Xamarin.Forms;
namespace XFHocKey.Droid
{
[Activity(Label = "多奇集團 行動儀表板", Icon = "@drawable/icon", Theme = "@style/MainTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
{
public string HocKeyApp_ID = "ee4d14e6b55d41569395c176e9720ebb";
protected override void OnCreate(Bundle bundle)
{
TabLayoutResource = Resource.Layout.Tabbar;
ToolbarResource = Resource.Layout.Toolbar;
base.OnCreate(bundle);
global::Xamarin.Forms.Forms.Init(this, bundle);
LoadApplication(new App());
// 註冊程式異常崩壞的回報機制
CrashManager.Register(this, HocKeyApp_ID);
// 檢查是否有新版本推出,讓使用者可以選擇是否要升級
CheckForUpdates();
// 訊息中心訂閱者,當使用者在核心PCL內按下按鈕之後,訊息中心將會收到這個訊息通知,並且進行處理
MessagingCenter.Subscribe<我要回報>(this, "是的,請說", (sender) =>
{
#region 讓使用者填寫意見,並記錄到 HocKeyApp
FeedbackManager.Register(this, HocKeyApp_ID);
FeedbackManager.ShowFeedbackActivity(ApplicationContext);
#endregion
});
}
void CheckForUpdates()
{
// Remove this for store builds!
UpdateManager.Register(this, HocKeyApp_ID);
}
void UnregisterManagers()
{
UpdateManager.Unregister();
}
protected override void OnPause()
{
base.OnPause();
UnregisterManagers();
}
protected override void OnDestroy()
{
base.OnDestroy();
UnregisterManagers();
}
}
}
設定 XFHocKey.Droid 屬性
-
滑鼠雙擊
XFHocKey.Droid
專案內的 Properties
節點
-
點選左方的
Android Manifest
標籤頁次
-
在
Version number
內輸入 3
-
在
Version name
內輸入 1.2
滑鼠雙擊
XFHocKey.Droid
專案內的 Properties
節點
點選左方的
Android Manifest
標籤頁次
在
Version number
內輸入 3
在
Version name
內輸入 1.2
建置專案
-
在上方工具列的專案組態下拉選單,選擇
Release
組態,作為專案要建置的組態
-
滑鼠右擊
XFHocKey.Droid
專案節點,選擇 重建
-
當專案重建完成之後,滑鼠右擊
XFHocKey.Droid
專案節點,選擇 Export Android Package (.apk)
-
回到剛剛已經打開的檔案總管,您看到新的
com.miniasp.dashboard-Signed.apk
檔案又產生出來了。
在上方工具列的專案組態下拉選單,選擇
Release
組態,作為專案要建置的組態
滑鼠右擊
XFHocKey.Droid
專案節點,選擇 重建
當專案重建完成之後,滑鼠右擊
XFHocKey.Droid
專案節點,選擇 Export Android Package (.apk)
回到剛剛已經打開的檔案總管,您看到新的
com.miniasp.dashboard-Signed.apk
檔案又產生出來了。上傳第三版本應用程式套件
-
點選 HocKeyApp 網頁右上方的底下圖示,這樣就可以回到 HocKeyApp 儀表板首頁
-
請將新產生的
com.miniasp.dashboard-Signed.apk
檔案從檔案總管上,拖拉到 HocKeyApp 儀表板網頁上,接著放開,使其上傳更新版本應用程式到 HocKeyApp 內。
-
當上傳完成後,會直接進入到釋出應用程式的第一個步驟頁面
Notes
請在 Notes 欄位中,輸入 使用者可以回報問題與提出建議功能
-
請依序點選
Next Step
按鈕 > Next Step
按鈕 > Send
按鈕
-
最後,會顯示此次釋出版本的相關資訊,請點選
Done
按鈕
-
恭喜您,您已經將您的第三版本應用程式在 HocKeyApp 儀表板上架成功了,請點選左上角的回上一頁的箭頭
-
此時,您可以在網頁最上方看到,
Versions(3)
, Crashes(3)
, Feedback(0)
, Users(2)
,分別表示,這個應用程式 (App),現在有:
-
Versions(3)
有3個版本上傳
-
Crashes(3)
使用者使用上,有3個崩壞紀錄
-
Feedback(0)
沒有任何使用者有提出建議
-
Users(2)
現在有兩個使用者可以進行餐與測試
點選 HocKeyApp 網頁右上方的底下圖示,這樣就可以回到 HocKeyApp 儀表板首頁
請將新產生的
com.miniasp.dashboard-Signed.apk
檔案從檔案總管上,拖拉到 HocKeyApp 儀表板網頁上,接著放開,使其上傳更新版本應用程式到 HocKeyApp 內。
當上傳完成後,會直接進入到釋出應用程式的第一個步驟頁面
Notes
請在 Notes 欄位中,輸入
使用者可以回報問題與提出建議功能
- 請依序點選
Next Step
按鈕 >Next Step
按鈕 >Send
按鈕 - 最後,會顯示此次釋出版本的相關資訊,請點選
Done
按鈕 - 恭喜您,您已經將您的第三版本應用程式在 HocKeyApp 儀表板上架成功了,請點選左上角的回上一頁的箭頭
- 此時,您可以在網頁最上方看到,
Versions(3)
,Crashes(3)
,Feedback(0)
,Users(2)
,分別表示,這個應用程式 (App),現在有:Versions(3)
有3個版本上傳Crashes(3)
使用者使用上,有3個崩壞紀錄Feedback(0)
沒有任何使用者有提出建議Users(2)
現在有兩個使用者可以進行餐與測試
應用程式測試者的操作環境
-
強制關閉
多奇集團 行動儀表板
App
-
啟動
多奇集團 行動儀表板
App。
-
當
多奇集團 行動儀表板
App 執行後,系統會發現到有一個新版本推出,詢問您是否要進行更新
-
點選
Show
按鈕
-
此時,您會看到這個新版本的說明內容,並點下
Update
按鈕,升級這個 多奇集團 行動儀表板
App
-
當應用程式升級完成,並且重新啟動,接著進入到主頁面,您會看到有個按鈕,
我有話說
請點選 我有話說
這個按鈕,會看到如下圖畫面,此時,填寫相關資料,最後按下 SEND FEEDBACK
按鈕,這項意見就會送到 HocKeyApp 系統內。
回到 HocKeyApp 後台,可以看到有一個 Feedback
產生,您可以在這裡回覆給提問題的使用者
當使用者再度點選 我有話說
按鈕,就會看到來自後端的回應
強制關閉
多奇集團 行動儀表板
App
啟動
多奇集團 行動儀表板
App。
當
多奇集團 行動儀表板
App 執行後,系統會發現到有一個新版本推出,詢問您是否要進行更新- 點選
Show
按鈕 - 此時,您會看到這個新版本的說明內容,並點下
Update
按鈕,升級這個多奇集團 行動儀表板
App
當應用程式升級完成,並且重新啟動,接著進入到主頁面,您會看到有個按鈕,
我有話說
請點選
我有話說
這個按鈕,會看到如下圖畫面,此時,填寫相關資料,最後按下 SEND FEEDBACK
按鈕,這項意見就會送到 HocKeyApp 系統內。
回到 HocKeyApp 後台,可以看到有一個
Feedback
產生,您可以在這裡回覆給提問題的使用者
當使用者再度點選
我有話說
按鈕,就會看到來自後端的回應