1 回答
![?](http://img1.sycdn.imooc.com/5333a1d100010c2602000200-100-100.jpg)
TA贡献1775条经验 获得超11个赞
首先,欢迎来到SO!
Xamarin Forms 是否提供这种方式来做到这一点?
简单的答案是(不幸的是):不。
如果要使用 Xamarin Forms 重用存储在 Azure 上的完全相同的数据库,则应通过 Web 公开与 Azure 数据库交互的 API。然后,您的 Xamarin Forms 应用程序将使用类连接到您的 API HttpClient
,以便发布/获取数据。Xamarin 表单支持本地 SQLite 数据库引擎,仅此而已。如果需要,请在此处了解有关使用 Xamarin 表单的本地数据库的更多信息。
有没有更好的方法可以让我(作为初学者)在两个不同的平台(在我的情况下是桌面和手机)上与两个不同的应用程序共享同一个数据库?
最好的方法是明确公开链接到 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 关注
- 91 浏览
添加回答
举报