小编Has*_*tty的帖子

12
推荐指数
3
解决办法
9397
查看次数

如何在 Flutter WebSocketChannel 中传递 Authentication Header?

我正在使用 Flutter web_socket_channel包与服务器通信。该类WebSocketChannel不采用标头参数。

factory WebSocketChannel.connect(Uri uri, {Iterable<String>? protocols}) =>
      platform.connect(uri, protocols: protocols);
Run Code Online (Sandbox Code Playgroud)

当使用IOWebSocketChannel传递标头时,我会像此处Unsupported operation: Platform._version给出的那样进入网络。它在 Android 和 iOS 上运行良好。

websocket dart flutter

9
推荐指数
1
解决办法
1640
查看次数

从 LiveData 观察者调用时,导航组件的默认后台堆栈不起作用

我正在使用带有导航抽屉的 Android 导航组件(如在 Android Studio 模板中)。我将片段 A、B、C 作为顶级片段,用于导航抽屉中,片段 Z 与导航图中的片段 A 相连。现在我在片段 A 中有一个按钮。单击该按钮将使用安全参数打开片段 Z。

    binding.button.setOnClickListener {
        val action = NewsFragmentDirections.actionNavNewsToNewsDetailsFragment()
        it.findNavController().navigate(action)
    }
Run Code Online (Sandbox Code Playgroud)

打开片段 Z 时,应用栏图标会自动变为后退按钮,这将允许我返回片段 A。

这些工作正常,但这个问题是,当我在实时数据 obsedrver 中使用相同的安全参数代码时,后退按钮不起作用。

    viewModel.actionNewsDetails.observe(viewLifecycleOwner, {
        val action = NewsFragmentDirections.actionNavNewsToNewsDetailsFragment()
        findNavController().navigate(action)
    })
Run Code Online (Sandbox Code Playgroud)

这里有一些额外的细节

  • 一旦我们在片段 Z 中,它会像往常一样显示返回导航,但只是单击它不会执行任何操作
  • 当我快速点击后退按钮几次时,我注意到应用栏标题闪烁(在片段 A 和 Z 之间变化)
  • 当我在片段 Z 中时,我可以通过滑动打开导航抽屉
  • 我的实时数据代码写在片段 A 的 onCreateView()
  • 实时数据由 ViewModel 中的函数触发

我一直在努力解决这个问题。对不起,我的英语不好。

android kotlin android-jetpack android-architecture-navigation

3
推荐指数
1
解决办法
934
查看次数