Как разрешить Android Webview App, загруженные файлы, поврежденные проблемы на Kotlin?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Как разрешить Android Webview App, загруженные файлы, поврежденные проблемы на Kotlin?

Сообщение 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>
Это очень серьезный проект. Любой может помочь мне исправить загруженные файлы поврежденные проблемы.

Подробнее здесь: https://stackoverflow.com/questions/797 ... e-on-kotli
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»