小编Mu-*_*sai的帖子

让Android上的WebView使用Preferreds-Color-Scheme:Dark

我有一个使用webview的Android应用,最近我试图弄清楚如何通过使用新的@media (prefers-color-scheme: dark)CSS语法添加深色主题。我在页面上写了正确的CSS,并且如果我在Chrome的暗模式下打开它并在Chrome中打开它,则可以使用。我也AppTheme继承了Theme.AppCompat.DayNight,当我为设备上的整个操作系统打开暗模式时,我的应用会显示暗加载对话框等。甚至<input>元素的自动完成选项也变暗了。但是,加载了我的webview的网页并没有变暗。根据此页面,Web视图应支持此功能,但我无法使其正常工作。我在这里想念什么?

我还发现在API 29中有此WebSettings.setForceDark()方法。可能是我要找的东西吗?我希望找到一个适用于较低API级别的解决方案。

顺便说一句,我当前的解决方法是注入一个JavaScript接口,如下所示:

webView.addJavascriptInterface(new JSInterface(), "jsInterface");

...

public class JSInterface {
    @JavascriptInterface
    public boolean isNightMode() {
        int nightModeFlags = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
        return nightModeFlags == Configuration.UI_MODE_NIGHT_YES;
    }
}
Run Code Online (Sandbox Code Playgroud)

然后在我的网页中,调用该jsInterface.isNightMode()方法并根据结果动态加载不同的CSS文件。它当然可以工作,并且可以根据需要对全局暗模式设置做出响应,但是我仍然想知道是否可以进行prefers-color-scheme工作。

css android android-webview android-studio android-night-mode

6
推荐指数
2
解决办法
1269
查看次数

eslint 在单行 if 括号后强制空格

我对 ESLint 还很陌生,我找不到满足我要求的规则。考虑以下代码:

if(someCondition)i++;
Run Code Online (Sandbox Code Playgroud)

我想在括号后强制使用一个空格,这样我们就应该有以下内容:

if(someCondition) i++;
Run Code Online (Sandbox Code Playgroud)

但我就是找不到这样的规则;它不是space-before-function-paren(显然),keyword-spacing(只影响 后面的间距if)或space-before-blocks(因为这是单行 if,所以没有块)。请帮忙。谢谢!

PS 同样的规则也应该适用于单行 while。

eslint eslintrc typescript-eslint

5
推荐指数
1
解决办法
1062
查看次数

一个 Blazor 项目能否同时包含 WebAssembly 部分和服务器端部分?

现在 Blazor WebAssembly 正式发布,我尝试使用该模板创建我的第一个 Blazor wasm 项目,但很快注意到一件事与我所期望的完全不同。模板中似乎没有“服务器”部分,发布的结果仅包含静态资产(包括所有 .dll 文件)。当然,我想知道如何访问我的在线数据库?允许客户端直接访问我的数据库听起来是一个糟糕的主意(如果它可以做到的话),因为我必须在我的客户端代码中的某处包含我的连接字符串......绝对不!

在谷歌上快速搜索后,似乎每个人都在使用另一台服务器使用 API 来提供数据。好的,很好,但是如果我可以将我的服务器部分包含在同一个项目中,并使用 WebSocket(就像在 Blazor 服务器中一样)而不是 API 与我的客户端进行通信,那不是更好吗?那可能吗?

blazor blazor-server-side blazor-client-side

1
推荐指数
1
解决办法
1355
查看次数