#javascript #c# #android #asp.net #kotlin
Вопрос:
У меня есть приложение для Android, которое в основном представляет собой веб-представление для нашего asp.net веб-приложение. Теперь мне нужно внедрить сканер штрих-кода в приложение для Android, чтобы считывать и переносить номер со штрих-кода на asp.net бэкэнд. У меня есть эта строка в js в Интернете, чтобы вызвать функцию Android для сканера штрих-кодов:
window.AndroidWebInterface.getIcc();
В Android я перепробовал множество различных подходов для запуска функции сканирования, которая использует набор ML для считывания штрих-кода, который работает нормально, но у меня возникли проблемы с возвратом кода, который я прочитал с помощью камеры, в функцию вызывающего абонента js из бэкэнда. Я могу отобразить его в приложении для Android, но не знаю, как вернуть его на серверную часть.
Немного кода из приложения для Android
barcodeScanner.process(inputImage)
.addOnSuccessListener { barcodeList ->
val barcode = barcodeList.getOrNull(0)
// `rawValue` is the decoded value of the barcode
barcode?.rawValue?.let { value ->
// update our textView to show the decoded value
binding.bottomText.text = barcode.displayValue
val data = Intent()
data.putExtra("icc", barcode.displayValue)
setResult(Activity.RESULT_OK, data)
finish()
}
}
registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
if (result.resultCode == Activity.RESULT_OK) {
icc = result.data?.getStringExtra("icc")
}
}
startForResult.launch(Intent(this, ScanActivity::class.java))
Комментарии:
1. Я думаю, в тот момент, когда вы представите сканер? Тогда это должно быть вызвано вызовом веб-метода на сервер. неясно, работает ли сканер через клин клавиатуры, но скажите, даже если вы используете камеру для сканирования штрих-кода? Ваша процедура получит возвращенный номер штрих-кода, в этот момент, если вам нужны данные с сервера на основе этого штрих-кода, затем вызовите веб-метод на стороне сервера (ajax или вызов rest). Я бы не стал пробовать какой-то недоделанный подход, при котором по телефону вы пытаетесь использовать какую-то веб-страницу, застрявшую внутри представления на телефоне. У вас уже есть возможность разработки по телефону.