javascript - Android 4.4 上的 WebView - 使用 JavaScript 更改字体

标签 javascript android fonts webview android-4.4-kitkat

在我的一个应用程序中,我正在获取 HTML 内容并添加 Javascript 图像并使用 loadURL() 加载内容。单击图像时,将调用注入(inject)的相应 javascript 函数。功能是“增大字体”、“减小字体”和“分享”。

字体大小的增加和减少是使用 Javascript 函数完成的 WebView.loadUrl("javascript:getElementById('标题')...等);

我最近将我的应用目标 api 更改为 19 (Android 4.4)。现在我注意到只要调用增加或减少字体大小,网页就会变成空白。但是 Share 继续正常工作。我已经按照 Android 4.4 的要求添加了 @JavaScriptInterface 注释。

(当目标为 16 时,整个设置工作正常)。请告知是否有人遇到过此问题。

最佳答案

在 Android 4.4 及更高版本上,您不能再在 loadUrl() WebView 方法中加载 javascript。现在有一个名为 evaluateJavascript(...) 的新方法,其用法如下:

String javascript = "INSERT JAVASCRIPT";
ValueCallback<String> resultCallback;

// ...initialize resultCallback here

if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
    mWebView.evaluateJavascript(javascript, resultCallback);
} else {
    mWebView.loadUrl(javascript);
}

关于javascript - Android 4.4 上的 WebView - 使用 JavaScript 更改字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21224321/

相关文章:

javascript - MathJax:无法使用 Jekyll 渲染\begin{cases}...\end{cases}

javascript - 在 if 条件语句中分配变量,好习惯与否?

android - Universal Image Loader UIL nostra 内存不足错误

android - animation.start() 或 animation.startNow() 不会立即启动动画

html - Google 字体无法在 Safari 中加载

javascript - 我在 AngularJS 中有两个具有相同 ng-controller 的 div,如何让它们共享信息?

android - 如何从 Main(ActionBarActivity) intent Activity 获取 ActionBar

ios - @font-face 在 iOS 中用于波斯字体

fonts - 如何在 JavaFX 字体中强制抗锯齿?

javascript - 如何使用 shelljs 使 Node 中的错误超时?