1 回答

TA貢獻1775條經(jīng)驗 獲得超11個贊
首先,歡迎來到SO!
Xamarin Forms 是否提供這種方式來做到這一點?
簡單的答案是(不幸的是):不。
如果要使用 Xamarin Forms 重用存儲在 Azure 上的完全相同的數(shù)據(jù)庫,則應通過 Web 公開與 Azure 數(shù)據(jù)庫交互的 API。然后,您的 Xamarin Forms 應用程序將使用類連接到您的 API HttpClient
,以便發(fā)布/獲取數(shù)據(jù)。Xamarin 表單支持本地 SQLite 數(shù)據(jù)庫引擎,僅此而已。如果需要,請在此處了解有關使用 Xamarin 表單的本地數(shù)據(jù)庫的更多信息。
有沒有更好的方法可以讓我(作為初學者)在兩個不同的平臺(在我的情況下是桌面和手機)上與兩個不同的應用程序共享同一個數(shù)據(jù)庫?
最好的方法是明確公開鏈接到 Azure DB 的 Web API。將來,您的桌面和移動應用程序(以及任何其他應用程序)將調用您的 ApiController 方法,這意味著這將是您所有應用程序之間的共享代碼。
下面是一個關于如何從 Xamarin Forms 調用 API 的通用示例方法:
public static async Task<TResult> GetData<TResult>(string apiTarget)
{
using (var client = new HttpClient())
{
//setup client
client.BaseAddress = new Uri(_API_BASE_URI);
client.MaxResponseContentBufferSize = 9999999;
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Add("Authorization", "Bearer " + _TOKEN);
TResult _Result = default(TResult);
//make request
HttpResponseMessage response = await client.GetAsync(apiTarget).ConfigureAwait(false);
if (response.IsSuccessStatusCode)
{
var content = await response.Content.ReadAsStringAsync().ConfigureAwait(false);
_Result = (TResult)JsonConvert.DeserializeObject<TResult>(content);
}
return _Result;
}
}
- 1 回答
- 0 關注
- 122 瀏覽
添加回答
舉報