通过 Xamarin Forms 应用使用 Azure 移动服务的最佳方式是什么?我正在使用 Azure 移动服务的托管后端版本。
这是迄今为止我的项目架构:
应用程序(可移植)
App.Droid
App.iOS
App.WinPhone
除此之外,我还在解决方案中添加了另外 2 个项目
应用程序服务
是 azure 移动服务,它不直接在上述任何项目中使用,而是通过表 Controller (Web API 内容)
应用程序共享(PCL)
这包含我的所有模型类和位于 azure API 之上的包装器。这个想法是使用这个 PCL 作为一个可重用的库,我将来可以在任何其他客户端上使用它。
所有与 azure 相关的位仅位于 app.Shared 和 native 项目中。
此设置适用于 Windows Phone 模拟器并在本地运行 Azure 服务。
但是,我无法使用 Android 设备或模拟器访问 Azure 服务(本地运行)。它总是立即返回“未经授权”错误。
我可以从 droid 模拟器中运行的浏览器应用程序访问本地运行的服务。我还可以从我的设备上运行的 Chrome 应用程序访问此服务。
你看到我这里有什么问题吗?
谢谢
最佳答案
我已经这样做了 - 基本上您需要在 Xamarin Forms PCL 中编写通用访问代码,但在实际平台项目中实例化并注册 Azure 客户端。使用完整的依赖项注入(inject)框架(例如 Autofac)比仅使用 Xamarin 服务定位器要容易得多。
大部分逻辑都位于 PCL 的类中。它应该接受 MobileServiceSyncClient 的依赖项(抱歉,如果该名称已关闭,不是我的代码),这是您将调用 GetTable、Update 等的实际客户端。
然后,您在 iOS 或 Android 项目中构建一些内容 - MobileSyncStore(它依赖于 SQLite)以及客户端(无法在 PCL 中初始化)。将其提供给您的逻辑类,然后注册该逻辑类(在我的代码中,这是 AzureStorageService,实现 IMobileServiceClient)。现在,任何需要与服务器通信的类都只需获得对 IMobileServiceClient 的依赖,就可以开始了。
关于azure - 将 Azure 移动服务与 Xamarin Forms 结合使用的正确方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33607574/