正如iOS开发人员所知,您只能为应用商店中的应用和应用内商品设置一个价格等级.但是,您可以(理论上)将其作为具有不同价格的不同国家/地区的单独应用程序发布.我想对相同应用的应用内商品做同样的事情 - 定义替代的应用内商品,并根据用户的国家/地区控制应用在应用中的展示率.我不想使用NSLocale或NSTimeZone,因为它们可以在设置中更改.我想知道应用商店/用户所连接的国家/地区.
例如,我想为大多数用户提供自动续订订阅,但我知道自动续订订阅在以色列应用商店中不可用,因此我想向以色列用户显示不续订订阅,而不是向他们展示自动更新的一个.有没有可靠的方法来实现这一目标?
谢谢,Avi
我正在开发一个监听语音命令的应用程序,通过遥控器(Airpods或有线耳机)开始/停止收听语音命令的方式.我用AVAudioSession和尝试了各种AVAudioSession选项,AVAudioSessionCategoryRecord并得到以下结果:
每当默认输入是蓝牙(Airpod)麦克风(AVAudioSessionCategoryPlayAndRecord)时,应用程序不会接收远程控制事件.只要默认输入是内置麦克风或有线耳机,应用程序就会接收远程控制事件.
有谁知道是否可以启用蓝牙麦克风并接收遥控事件?
我在iOS 11.0.1和11.0.3上测试过.
我是 Flutter 和 BLoC 设计模式的新手。然而,BLoC 的概念看起来很简单,我想我很好理解。
有时,在查看我同事的代码时,我发现在实现 BLoC 时,他们倾向于将数据存储在 BLoC 类中。我相信这是错误的,数据属于状态类。如果需要在可以创建状态之前将其传递或存储在某处,则应将其存储在触发更改的事件实例中,而不是 BLoC 本身。
我的理解是 BLoC 类是一个状态机,其唯一目的是将事件映射到状态并且除了定义的“状态”类之外没有其他状态。这是关注点分离 - 事件类应该存储触发更改的数据,状态类应该存储更改后的数据,并且 BLoC 应该处理操作该数据并将其从事件映射到状态。
如果将数据存储在 BLoC 类中,状态机将其功能从 更改(event, state0) => state1为(event, state0, blocData) => state1。很明显,如果你想对你的 BLoC 进行单元测试,你的测试的复杂性会增加,因为你需要测试用例|event| X |state| X |blocData|而不是用|event| X |state|例(意味着每种类型的可能值数量的笛卡尔乘法)。可以声称它并没有真正影响可能值的数量,因为我们只会移动blocData到state. 但是,我的主张是,如果将数据封装在一起,通常会发现它们是相互依赖的,有些组合是无关紧要的,但是只有在将它们封装在一起时才能保持这种依赖关系,或者至少在封装在一起时才能保护它不被破坏.
另一个原因是,查看状态并发送事件的应用程序代码可能会产生不确定的结果。这是因为 BLoC 实例具有影响其功能的“脏”状态。
我想听听在这种设计模式方面有更多经验的开发人员的意见。如果您可以发布一些有关此问题的文章的参考资料,那也很棒。我没有找到有关此问题的任何具体信息。
我想在XML中定义一个完成封闭活动的事件监听器,如下所示:
<EditText
android:id="@+id/finish"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:imeOptions="actionDone"
android:inputType="text"
android:onEditorAction="@{() -> activity.finish()}" />
Run Code Online (Sandbox Code Playgroud)
但是,我没有提到封闭活动.我知道我可以使用a传递它<variable>,但Activity似乎是一个太常见的变量,无法在每个布局中显式传递...我认为数据绑定是为了简化代码而引入的.我没有在ViewDataBinding类中找到任何提示.
android ×1
app-store ×1
bloc ×1
country ×1
data-binding ×1
in-app ×1
ios ×1
microphone ×1
xml ×1