我们有一个可以使用用户当前位置的视图。
我们正在做的标准‘我们可以使用您的位置’时,视图是第一次显示(用户以前没有说不)。如果用户说是,那么它将查找当前位置,然后显示如下。
如果用户说不(或者这不是第一次),那么视图将停留在屏幕上,可以选择以文本方式输入位置,也可以按“使用当前位置”按钮。显然,如果用户之前拒绝了位置,那么如果他们按下“使用当前位置”位置,我们会再次提示允许。
我们目前已经通过视图模型上的“提示权限”属性实现了这一点,视图随后将订阅该属性。如果用户说“是”,我们(视图)在视图模型中执行“用户确认”命令,否则执行“user谢绝”命令(在视图模型中)。
虽然这很管用,但感觉不太对劲。我们已经看到了UserError代码,并且可能会使用它,但是使用一种可能会导致错误的机制来提示用户获得许可,感觉有点奇怪。显然,这是MVVM实现有许多不同解决方案的场景,但考虑到ReactiveUI的简洁性,我们期望得到一个微妙的解决方案。
有人建议吗?
发布于 2014-06-19 17:28:56
对于这个场景,UserError框架会很好地工作,这可能就是我所要做的。使用UserError的优点是您可以很容易地模拟所有的场景(即用户首先拒绝视图,然后决定是,用户单击“是”,等等)。
定义UserError的子类(LocationPermissionError或其他什么),然后在您的视图上注册一个只对LocationPermissionError感兴趣的处理程序。
https://stackoverflow.com/questions/24289719
复制相似问题