From b451e694f4f3fef3af9076df2f49d4e5d5e81f7b Mon Sep 17 00:00:00 2001 From: fengge <844143714@qq.com> Date: Wed, 8 Jul 2026 16:28:58 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=BB=9A=E5=8A=A8=E6=9D=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/stand/standapp/MainActivity.kt | 29 ++++++++++++++++--- 1 file changed, 25 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/stand/standapp/MainActivity.kt b/app/src/main/java/com/stand/standapp/MainActivity.kt index 6ccaabf..2f8dd07 100644 --- a/app/src/main/java/com/stand/standapp/MainActivity.kt +++ b/app/src/main/java/com/stand/standapp/MainActivity.kt @@ -275,10 +275,31 @@ class MainActivity : AppCompatActivity() { } private fun createGeckoRuntime(): GeckoRuntime { - val runtime = GeckoRuntime.getDefault(this) - runtime.settings.aboutConfigEnabled = true - runtime.settings.consoleOutputEnabled = true - // 强制清缓存,确保 JS/CSS 等资源获取最新版本 + // 1. 将配置写入应用的本地沙盒文件 (YAML 格式) + val configFile = java.io.File(filesDir, "geckoview-config.yaml") + try { + val configContent = """ + prefs: + layout.testing.overlay-scrollbars.always-visible: true + """.trimIndent() + configFile.writeText(configContent) + Timber.tag("MainActivity").d("Wrote GeckoView config to: ${configFile.absolutePath}") + } catch (e: Exception) { + Timber.tag("MainActivity").e(e, "Failed to write geckoview-config.yaml") + } + + // 2. 通过 GeckoRuntimeSettings.Builder 加载该 YAML 配置文件并创建 GeckoRuntime 实例 + val settingsBuilder = org.mozilla.geckoview.GeckoRuntimeSettings.Builder() + .aboutConfigEnabled(true) + .consoleOutput(true) + + if (configFile.exists()) { + settingsBuilder.configFilePath(configFile.absolutePath) + } + + val runtime = GeckoRuntime.create(this, settingsBuilder.build()) + + // 3. 强制清缓存,确保 JS/CSS 等资源获取最新版本 try { // runtime.storageController.clearData(ClearFlags.ALL) Timber.tag("MainActivity").i("GeckoView cache cleared")