169 похожих чатов

Package com.example.qazaqkeruen import android.content.pm.PackageManager import android.os.Build import android.os.Bundle import androidx.appcompat.app.AppCompatActivity import androidx.core.app.ActivityCompat import androidx.core.content.ContextCompat import android.Manifest import

android.net.Uri
import android.webkit.*

class MainActivity : AppCompatActivity() {

private lateinit var webView: WebView

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)

webView = findViewById(R.id.webview)

// Настройка WebView
val webSettings: WebSettings = webView.settings
webSettings.javaScriptEnabled = true // Включаем поддержку JavaScript
webSettings.domStorageEnabled = true // Включаем локальное хранилище для JavaScript
webSettings.allowFileAccess = true
webSettings.allowContentAccess = true
webView.settings.setGeolocationEnabled(true)

// Запрашиваем разрешения на доступ к хранилищу и камере
val storagePermission = Manifest.permission.WRITE_EXTERNAL_STORAGE
val cameraPermission = Manifest.permission.CAMERA
val granted = PackageManager.PERMISSION_GRANTED

if (ContextCompat.checkSelfPermission(this, storagePermission) != granted ||
ContextCompat.checkSelfPermission(this, cameraPermission) != granted) {
ActivityCompat.requestPermissions(
this,
arrayOf(storagePermission, cameraPermission),
0
)
}

webView.webChromeClient = object : WebChromeClient() {
override fun onShowFileChooser(
webView: WebView,
filePathCallback: ValueCallback<Array<Uri>>,
fileChooserParams: FileChooserParams
): Boolean {
// Handle file upload here
return true
}
}

// Настройка WebViewClient
webView.webChromeClient = object : WebChromeClient() {
override fun onGeolocationPermissionsShowPrompt(
origin: String,
callback: GeolocationPermissions.Callback
) {
if (ContextCompat.checkSelfPermission(this@MainActivity, Manifest.permission.ACCESS_FINE_LOCATION) == granted) {
// Уже есть разрешение на геолокацию
callback.invoke(origin, true, false)
} else {
// Запрашиваем разрешение у пользователя
ActivityCompat.requestPermissions(
this@MainActivity,
arrayOf(Manifest.permission.ACCESS_FINE_LOCATION),
0
)
}
}
}

// Загружаем веб-страницу
webView.loadUrl("")
}

override fun onRequestPermissionsResult(
requestCode: Int,
permissions: Array<String>,
grantResults: IntArray
) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults)

if (requestCode == 0) {
// Это код запроса разрешения, который мы использовали в requestPermissions
if (grantResults.isNotEmpty() && grantResults.all { it == PackageManager.PERMISSION_GRANTED }) {
// Разрешения на геолокацию, хранилище и камеру были предоставлены
webView.reload()
}
}
}

override fun onBackPressed() {
if (webView.canGoBack()) {
webView.goBack()
} else {
super.onBackPressed()
}
}
}

5 ответов

59 просмотров

снова мимо

Senior, воспользуйтесь pastebin, пожалуйста

а вопрос где

Di7aK
а вопрос где

Он выше задавал, гы

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта