小编Yar*_*rit的帖子

Android 应用程序中的 AWS Amplify Cognito Auth 错误

我正在按照 Amplify 文档向我的 Android 应用程序添加身份验证。我AuthException在这条线上得到一个:

Amplify.addPlugin(AWSCognitoAuthPlugin())
Run Code Online (Sandbox Code Playgroud)

我确实创建了一个用户池。我需要以某种方式附加它吗?有一些问题AWSMobileClient,我猜。

这是我的Application课:

class AppUtils : Application() {
    override fun onCreate() {
        super.onCreate()
        try {
            Amplify.addPlugin(AWSCognitoAuthPlugin())
            Amplify.configure(applicationContext)
            Log.d(TAG, "Initialized Amplify")
        } catch (error: AmplifyException) {
            Log.e(TAG, "Could not initialize Amplify", error)
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这是出现在 logcat 中的错误:

AuthException{message=无法实例化 AWSMobileClient,cause=java.lang.RuntimeException:未使用 Cognito Identity 或 Cognito UserPool。必须至少存在一个才能使用 AWSMobileClient。, recoverySuggestion=有关更多详细信息,请参阅附加的例外情况}

authentication android amazon-cognito aws-amplify

5
推荐指数
1
解决办法
2236
查看次数

Android 应用程序与 WIX 网站上的 assetlinks.json 链接

我正在实现到我的 Android 应用程序的深度链接,它仅在单击具有所需 url 的链接时才起作用,例如https://mydomain.co.il仅在外部浏览器中,如 Whatsapp 等。我知道,为了使应用程序链接在浏览器中工作,网站需要找到assetlinks.json文件athttps://mydomain.co.il/.well-known/assetlinks.json以验证我是域和应用程序的所有者。

所以我确实已经准备好了 assetlinks.json 文件,但是有人知道https://mydomain.co.il/.well-known/assetlinks.json在使用 Wix 作为平台时如何将该文件放在我的网站上的特定位置 () 中吗?

提前致谢

javascript android deep-linking velo

5
推荐指数
1
解决办法
1057
查看次数

AndroidcollectAsStateWithLifecycle() 未在可组合项内收集

我正在使用 composeLazyColumn和 viewModel 通过在我的 viewModel 中更新列表项:

    data class ContactsListUiState(
       val contacts: MutableList<Contact>
    )
    @HiltViewModel
    class ContactsViewModel @Inject constructor(savedStateHandle: SavedStateHandle) : ViewModel() {
    private val _contactsListUiState = MutableStateFlow(ContactsListUiState(mutableListOf()))
    val contactsListUiState: StateFlow<ContactsListUiState> = _contactsListUiState.asStateFlow()

    private fun updateContactsList(newContacts: MutableList<Contact>) {
        _contactsListUiState.update{ currentState ->
            currentState.copy(
                contacts = newContacts
            )
        }
    }
Run Code Online (Sandbox Code Playgroud)

这样我的updateContactsList()函数就会更新 stateFlow,并且我应该在collectAsStateWithLifecycle()可组合函数内部收集联系人列表MainActivity

@OptIn(ExperimentalLifecycleComposeApi::class, ExperimentalFoundationApi::class)
    @Composable
    fun ContactsListScreen(
        navController: NavController,
        modifier: Modifier = Modifier
    ) {
        Log.d("ViewModel", "ContactsListScreen recomposed")
        val uiState by contactsViewModel.contactsListUiState.collectAsStateWithLifecycle()
        Box(modifier = modifier) { …
Run Code Online (Sandbox Code Playgroud)

android kotlin android-jetpack-compose kotlin-stateflow compose-recomposition

5
推荐指数
1
解决办法
1977
查看次数

使用 hilt 将 Activity 中的视图模型共享到 compose 函数

我的应用程序使用 hilt,我LoadManager在活动内部进行了一些工作,使用读取联系人ContentResolver,当我完成工作时,我得到发送到我的 viewModel 的光标,以便处理数据并执行一些业务逻辑,为此我声明了以下内容在我的活动之上:

@AndroidEntryPoint
class MainActivity : ComponentActivity(), LoaderManager.LoaderCallbacks<Cursor> {
    private val contactsViewModel: ContactsViewModel by viewModels()
 ...
Run Code Online (Sandbox Code Playgroud)

这样我就可以在里面使用它onLoadFinished

    override fun onLoadFinished(loader: Loader<Cursor>, cursor: Cursor?) {
  
                contactsViewModel.updateContactsListFromCursor(cursor, loader.id)
     }

Run Code Online (Sandbox Code Playgroud)

在我的 viewModel 中,我有以下代码,它使用要显示的联系人更新列表的 ui 状态:

data class ContactsListUiState(
    val contacts: MutableList<Contact>,
    val searchFilter: String)

@HiltViewModel
class ContactsViewModel @Inject constructor() : ViewModel() {
    private val _contactsListUiState =
        MutableStateFlow(ContactsListUiState(mutableStateListOf(), ""))
    val contactsListUiState: StateFlow<ContactsListUiState> = _contactsListUiState.asStateFlow()

    private fun updateContactsList(filter: String) {
        viewModelScope.launch(Dispatchers.IO) {
            ...

            _contactsListUiState.update { currentState -> …
Run Code Online (Sandbox Code Playgroud)

android android-viewmodel android-jetpack-compose dagger-hilt jetpack-compose-navigation

5
推荐指数
1
解决办法
2814
查看次数

RecyclerView 与 ListAdapter

我正在尝试将我的适配器转换为 ListAdapter,以便将来包含分页库。我的应用程序是一个基本的 2 片段笔记应用程序,第一个片段具有回收器视图,第二个片段具有用于将文本插入回收器视图的 EditText。我已经实现了所有内容,由于某种原因,我的 recyclerview 在调用 SubmitList() 后没有显示任何内容。我用适配器列表观察我的实时数据列表,并且我的实时数据列表正在从我查询数据的房间数据库中获取数据。在我将适配器转换为 ListAdapter 之前,一切正常

有什么建议么?

我的适配器类:

package com.example.mvvm_example

import android.content.Context
import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import androidx.recyclerview.widget.DiffUtil
import androidx.recyclerview.widget.ListAdapter
import androidx.recyclerview.widget.RecyclerView
import com.example.mvvm_example.db.Word

interface OnItemClickListener : View.OnClickListener {
    override fun onClick(v: View?) {
    }
}

class ListAdapterCallBack : DiffUtil.ItemCallback<Word>() {
    override fun areItemsTheSame(oldItem: Word, newItem: Word): Boolean {
        return oldItem.mWord == newItem.mWord
    }

    override fun areContentsTheSame(oldItem: Word, newItem: Word): Boolean {
        return oldItem == newItem
    }
}

class …
Run Code Online (Sandbox Code Playgroud)

android listadapter kotlin android-recyclerview

2
推荐指数
1
解决办法
5147
查看次数