setJavaScriptEnabled(true)的替代方案是什么?

65

我开发了一个使用Webview组件的Android应用程序。我在我的代码中使用了以下代码行:

webViewScores.getSettings().setJavaScriptEnabled(true);

由于这行代码,它显示Lint警告:使用setJavaScriptEnabled可能会在您的应用程序中引入XSS漏洞,请仔细查看。现在我知道我可以通过在我的方法上方或类级别上写下这行代码@SuppressLint("SetJavaScriptEnabled")来排除此警告。但是我的问题是,是否有其他解决方案?我的意思是是否有其他方法可以在Webview中启用Java Script?

4个回答

29

你必须在类级别上使用它,如下所示:

@SuppressLint("SetJavaScriptEnabled")
public class MyActivity extends Activity
{
    ...
}

据我所知,在WebView中启用JavaScript没有其他方法,如果你的应用程序确实不需要在WebView中使用JavaScript,那么不要调用setJavaScriptEnabled(true)。


72
忽略警告不应该被视为解决方案。 - devDeejay
@devDeejay 对于大多数需要进行代码级别修复的警告来说,这是正确的。但我觉得这个警告是一个特殊情况,因为它明确地说“仔细审查”。如果你已经仔细审查过了,并且认为启用JavaScript没有风险,我认为可以抑制这个警告,以表示你已经采取了警告中描述的行动(即仔细审查)。 - Adam Burley

5

最佳答案。大多数情况下,您会使用受信任的服务器与HTTPS一起使用,因此关闭HTTP是易如反掌的。 - rwst
只有在允许访问文件网址或使用纯HTTP时,才会成立。根据链接 - Adam Burley

3
警告提示您启用Javascript可能不安全。只需检查是否绝对需要启用Javascript,如果需要,则通过抑制警告来实现。
@SuppressLint("SetJavaScriptEnabled")

26
未回答问题。 - ban-geoengineering

-1
你可以选择实现一个自定义的Javascript渲染器,甚至更好的是一个完整的浏览器,毕竟,浏览器只解析基本上是XML的HTML。

1
该实现一定要大量使用正则表达式。它将被称为NIH-Browser。 - Sogger

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接