@Composable
fun MailRoomInScreen(
webView: WebView,
mailRoomViewModel: MailroomViewModel,
navController: NavHostController
) {
val context = LocalContext.current
val mailRoomLogs by mailRoomViewModel.mailRoomLogs.collectAsState()
val type = "inTab"
val appNavigationActions = AppNavigationActions(navController)
// Initialize the WebView
val webView = remember {
WebView(context).apply {
settings.javaScriptEnabled = true
settings.domStorageEnabled = true
addJavascriptInterface(
MailRoomListInterface(navController, mailRoomViewModel, this, context),
"Android"
)
webViewClient = object : WebViewClient() {
override fun onPageFinished(view: WebView?, url: String?) {
super.onPageFinished(view, url)
val jsonData = convertToJson(mailRoomLogs, type)
view?.evaluateJavascript("showList($jsonData)") { result ->
Log.d("Result", result)
}
}
}
loadUrl(BaseUrls.ListUrl)
}
}
// Dispose of the WebView when the composable is removed from the composition
DisposableEffect(Unit) {
onDispose {
webView.loadData("", "text/html", "base64")
webView.destroy()
}
}
// Load mail room logs when the composable is first composed
LaunchedEffect(Unit) {
mailRoomViewModel.getMailRoomLogs()
}
// Display the WebView
AndroidView(
factory = { webView },
modifier = Modifier.fillMaxSize()
)
}
Но если я заменю экран вкладок простым составным текстом, проблема исчезнет. Когда я проверил документацию, это привело меня к Android Native Crash, но я так и не смог решить проблему.
Я хотел вернуться с текущего экрана, но при этом это приводит к сбою.
Всякий раз, когда я пытаюсь вернуться к навигации с экрана ниже, у меня происходит сбой. [code]@OptIn( ExperimentalFoundationApi::class, ExperimentalMaterial3Api::class ) @Composable fun MailRoomScreen( navController: NavHostController, mailroomViewModel: MailroomViewModel = hiltViewModel() ) { val context = LocalContext.current val appNavigationActions = AppNavigationActions(navController) val webView = remember { WebView(context) } val tabs by mailroomViewModel.tabs.collectAsState() val pagerState = rememberPagerState( initialPage = 0, initialPageOffsetFraction = 0f, pageCount = { tabs.size } )
val scope = rememberCoroutineScope()
LaunchedEffect(tabs) { if (pagerState.currentPage !in tabs.indices) { pagerState.scrollToPage(0) } }
// Dispose of the WebView when the composable is removed from the composition DisposableEffect(Unit) { onDispose { webView.loadData("", "text/html", "base64") webView.destroy() } }
// Load mail room logs when the composable is first composed LaunchedEffect(Unit) { mailRoomViewModel.getMailRoomLogs() }
// Display the WebView AndroidView( factory = { webView }, modifier = Modifier.fillMaxSize() ) } [/code] Но если я заменю экран вкладок простым составным текстом, проблема исчезнет. Когда я проверил документацию, это привело меня к Android Native Crash, но я так и не смог решить проблему. Я хотел вернуться с текущего экрана, но при этом это приводит к сбою.
Всякий раз, когда я пытаюсь вернуться на перемещение с приведенного ниже экрана, я получаю сбой.
@OptIn(
ExperimentalFoundationApi::class,
ExperimentalMaterial3Api::class
)
@Composable
fun MailRoomScreen(
navController: NavHostController,...
Всякий раз, когда я пытаюсь вернуться на перемещение с приведенного ниже экрана, я получаю сбой.
@OptIn(
ExperimentalFoundationApi::class,
ExperimentalMaterial3Api::class
)
@Composable
fun MailRoomScreen(
navController: NavHostController,...
Я читал другие публикации о причинах появления SIGSEGV в приложении Android. Я планирую просмотреть свое приложение на предмет возможных NullPointers, связанных с использованием Canvas, но мой SIGSEGV каждый раз выдает другой адрес памяти. Плюс я...