Android Webview App, загруженные файлы, повреждены. Я хочу это исправить. < /H1>
Я разработал это приложение с помощью Kotlin. Я хочу использовать это приложение от Android 5 вверх. но загруженные файлы переполняются. < /p>
Я попробовал файлы PDF и файлы Excel. Я думаю, что некоторые проблемы на скачивании спискаpackage com.example.dms
import android.app.DownloadManager
import android.Manifest
import android.content.Context
import android.content.*
import android.annotation.SuppressLint
import android.content.Intent
import android.net.Uri
import android.os.Build
import android.os.Bundle
import android.os.Environment
import android.os.Handler
import android.os.Looper
import android.util.Log
import android.view.View
import android.view.WindowManager
import android.webkit.CookieManager
import android.webkit.URLUtil
import android.webkit.WebChromeClient
import android.webkit.WebSettings
import androidx.activity.ComponentActivity
import android.webkit.WebView
import android.webkit.WebViewClient
import android.webkit.*
import android.widget.Toast
import androidx.core.app.ActivityCompat
import android.widget.ImageView
import android.widget.TextView
import android.widget.VideoView
import java.io.File
class MainActivity : ComponentActivity() {
private lateinit var myWebView: WebView
private lateinit var myvideoView: VideoView
@SuppressLint("UnspecifiedRegisterReceiverFlag")
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
myvideoView = findViewById(R.id.videoView)
myWebView = findViewById(R.id.webView)
checkDownloadPermission()
// Incognito mode: disable cache, history, cookies
myWebView.clearCache(true)
myWebView.clearHistory()
CookieManager.getInstance().removeAllCookies(null)
CookieManager.getInstance().flush()
// Force hardware acceleration for better rendering
myWebView.setLayerType(View.LAYER_TYPE_HARDWARE, null)
val webSettings = myWebView.settings
// Enable essential features
webSettings.javaScriptEnabled = true
webSettings.domStorageEnabled = true
webSettings.useWideViewPort = true
webSettings.loadWithOverviewMode = true
webSettings.setSupportZoom(true)
webSettings.builtInZoomControls = true
webSettings.displayZoomControls = false
// Set desktop-style user agent
val desktopUA =
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36"
webSettings.userAgentString = desktopUA
// Optional: clear cache to avoid mobile version being reused
myWebView.clearCache(true)
myWebView.webViewClient = object : WebViewClient() {
override fun onPageFinished(view: WebView?, url: String?) {
super.onPageFinished(view, url)
view?.evaluateJavascript(
"(function() { document.querySelector('meta[name=viewport]').setAttribute('content', 'width=1024'); })();",
null
)
}
}
myWebView.setDownloadListener { url, userAgent, contentDisposition, mimetype, contentLength ->
val fileName = URLUtil.guessFileName(url, contentDisposition, mimetype)
val request = DownloadManager.Request(Uri.parse(url)).apply {
setTitle(fileName)
setDescription("Downloading file...")
setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED)
setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, fileName)
addRequestHeader("User-Agent", userAgent)
}
val dm = getSystemService(DOWNLOAD_SERVICE) as DownloadManager
dm.enqueue(request)
Toast.makeText(applicationContext, "Downloading...", Toast.LENGTH_SHORT).show()
val onComplete = object : BroadcastReceiver() {
override fun onReceive(context: Context?, intent: Intent?) {
Toast.makeText(applicationContext, "Download Complete", Toast.LENGTH_SHORT).show()
}
}
registerReceiver(onComplete, IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE))
}
myWebView.loadUrl("http://172.16.55.24/tst")
}
private fun checkDownloadPermission() {
if (ActivityCompat.shouldShowRequestPermissionRationale(this, android.Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
Toast.makeText(this, "Storage permission is needed to download files.", Toast.LENGTH_LONG).show()
} else {
ActivityCompat.requestPermissions(this, arrayOf(android.Manifest.permission.WRITE_EXTERNAL_STORAGE), 100)
}
}
}
< /code>
Это очень серьезный проект. Любой может помочь мне исправить загруженные файлы поврежденные проблемы.
Подробнее здесь: https://stackoverflow.com/questions/797 ... e-on-kotli
Как разрешить Android Webview App, загруженные файлы, поврежденные проблемы на Kotlin? ⇐ Android
Форум для тех, кто программирует под Android
1755783671
Anonymous
Android Webview App, загруженные файлы, повреждены. Я хочу это исправить. < /H1>
Я разработал это приложение с помощью Kotlin. Я хочу использовать это приложение от Android 5 вверх. но загруженные файлы переполняются. < /p>
Я попробовал файлы PDF и файлы Excel. Я думаю, что некоторые проблемы на скачивании спискаpackage com.example.dms
import android.app.DownloadManager
import android.Manifest
import android.content.Context
import android.content.*
import android.annotation.SuppressLint
import android.content.Intent
import android.net.Uri
import android.os.Build
import android.os.Bundle
import android.os.Environment
import android.os.Handler
import android.os.Looper
import android.util.Log
import android.view.View
import android.view.WindowManager
import android.webkit.CookieManager
import android.webkit.URLUtil
import android.webkit.WebChromeClient
import android.webkit.WebSettings
import androidx.activity.ComponentActivity
import android.webkit.WebView
import android.webkit.WebViewClient
import android.webkit.*
import android.widget.Toast
import androidx.core.app.ActivityCompat
import android.widget.ImageView
import android.widget.TextView
import android.widget.VideoView
import java.io.File
class MainActivity : ComponentActivity() {
private lateinit var myWebView: WebView
private lateinit var myvideoView: VideoView
@SuppressLint("UnspecifiedRegisterReceiverFlag")
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
myvideoView = findViewById(R.id.videoView)
myWebView = findViewById(R.id.webView)
checkDownloadPermission()
// Incognito mode: disable cache, history, cookies
myWebView.clearCache(true)
myWebView.clearHistory()
CookieManager.getInstance().removeAllCookies(null)
CookieManager.getInstance().flush()
// Force hardware acceleration for better rendering
myWebView.setLayerType(View.LAYER_TYPE_HARDWARE, null)
val webSettings = myWebView.settings
// Enable essential features
webSettings.javaScriptEnabled = true
webSettings.domStorageEnabled = true
webSettings.useWideViewPort = true
webSettings.loadWithOverviewMode = true
webSettings.setSupportZoom(true)
webSettings.builtInZoomControls = true
webSettings.displayZoomControls = false
// Set desktop-style user agent
val desktopUA =
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36"
webSettings.userAgentString = desktopUA
// Optional: clear cache to avoid mobile version being reused
myWebView.clearCache(true)
myWebView.webViewClient = object : WebViewClient() {
override fun onPageFinished(view: WebView?, url: String?) {
super.onPageFinished(view, url)
view?.evaluateJavascript(
"(function() { document.querySelector('meta[name=viewport]').setAttribute('content', 'width=1024'); })();",
null
)
}
}
myWebView.setDownloadListener { url, userAgent, contentDisposition, mimetype, contentLength ->
val fileName = URLUtil.guessFileName(url, contentDisposition, mimetype)
val request = DownloadManager.Request(Uri.parse(url)).apply {
setTitle(fileName)
setDescription("Downloading file...")
setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED)
setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, fileName)
addRequestHeader("User-Agent", userAgent)
}
val dm = getSystemService(DOWNLOAD_SERVICE) as DownloadManager
dm.enqueue(request)
Toast.makeText(applicationContext, "Downloading...", Toast.LENGTH_SHORT).show()
val onComplete = object : BroadcastReceiver() {
override fun onReceive(context: Context?, intent: Intent?) {
Toast.makeText(applicationContext, "Download Complete", Toast.LENGTH_SHORT).show()
}
}
registerReceiver(onComplete, IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE))
}
myWebView.loadUrl("http://172.16.55.24/tst")
}
private fun checkDownloadPermission() {
if (ActivityCompat.shouldShowRequestPermissionRationale(this, android.Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
Toast.makeText(this, "Storage permission is needed to download files.", Toast.LENGTH_LONG).show()
} else {
ActivityCompat.requestPermissions(this, arrayOf(android.Manifest.permission.WRITE_EXTERNAL_STORAGE), 100)
}
}
}
< /code>
Это очень серьезный проект. Любой может помочь мне исправить загруженные файлы поврежденные проблемы.
Подробнее здесь: [url]https://stackoverflow.com/questions/79742394/how-to-resolve-android-webview-app-downloaded-files-are-corrupted-issue-on-kotli[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия