小编daw*_*zaw的帖子

使用协程等待服务绑定

所以我有一个绑定到服务的方法。

fun bindService() {
        val intent = Intent(this, BluetoothService::class.java)
        bindService(intent, serviceConnection, Context.BIND_AUTO_CREATE)
    }
Run Code Online (Sandbox Code Playgroud)

在 onCreate 方法中,我使用以下代码:

 bindService()
        launch {
            delay(500L)
            service = serviceConnection.serviceBinder?.getService() as BluetoothService
        }
Run Code Online (Sandbox Code Playgroud)

有没有比使用更优雅的方式来等待服务被绑定delay()

kotlin

7
推荐指数
1
解决办法
1696
查看次数

用 Angular 组件替换 IdentityServer4 登录页面

我想将 IdentityServer4(代码 + PKCE 流程)与 .Net Core 和 Angular 一起使用。

我不想使用快速启动 UI,而是想在 Angular 端进行登录过程。在官方教程中,用户转到 Angular 应用程序,重定向到 IdentityServer4 UI,在那里登录,然后有另一个重定向 - 返回 Angular 应用程序。我还想提一下,我没有使用 .net 身份和实体框架,因为数据库流依赖于存储过程。

在我的设置中,Identiy Server 在端口 5555 上运行,Angular App 在端口 4200 上运行。为了与服务器通信,我使用 oidc-client-js。

我创建了一个从 Angular 调用的示例端点(登录)。不幸的是,IdSr 没有将我重定向到 AuthCallbackComponent。我只是得到一个空响应(如预期),但没有发生更多事情。据我了解,在模拟登录用户后,我只需要引发 UserLoginSuccessEvent 。之后 IdSr 应生成令牌并进行重定向。我错过了什么吗?我的做法有什么问题吗?

export class AuthService {
  private userManager: UserManager;
  private user: User;

  constructor(private client: HttpClient) {
    this.userManager = new UserManager(AuthSettings.settings);
    this.userManager.getUser().then(user => (this.user = user));
  }

  login() {
    let api = "http://localhost:5555/api/User";
    let headers = new HttpHeaders();
    headers.set("Content-Type", "application/json"); …
Run Code Online (Sandbox Code Playgroud)

asp.net-core identityserver4 angular

4
推荐指数
1
解决办法
2741
查看次数

使用Kotlin和rx-java combineLatest与表单验证混淆

所以我想用rx-java2进行表单验证.我正在使用Kotlin.我遇到了两个问题.emailObservable和passwordObservable都是类型Disposable!.我尝试通过调用指定类型,val emailObservable: Observable<Boolean>但Android Studio认为它Disposable!.

其次,当我想使用方法时combineLatest出现错误:使用提供的参数不能调用以下任何函数.

emailObservable和passwordObservable都能正常工作.我是rx-java的新手,我对这种类型的东西很困惑.

val emailObservable = RxTextView.afterTextChangeEvents(textEmail)
                .observeOn(AndroidSchedulers.mainThread())
                .map { x -> textEmail.text.length > 3 }
                .subscribe { x -> foo(x) }

val passwordObservable =RxTextView.afterTextChangeEvents(textPassword)
                .observeOn(AndroidSchedulers.mainThread())
                .map { x -> textPassword.text.length > 5 }
                .subscribe { x -> foo(x) }


Observable.combineLatest(emailObservable,
passwordObservable,
BiFunction { x: Boolean, y:Boolean -> x && y })
Run Code Online (Sandbox Code Playgroud)

kotlin rx-java rx-android rx-binding rx-java2

0
推荐指数
1
解决办法
402
查看次数