Android WebView loadUrl JavaScript无效工作API< = 18(但在API> = 19中工作)

时间:2015-06-18 11:07:34

标签: javascript android webview

问题:
我需要做些什么才能使webView.loadUrl(javaScript)在API 18或更低版本中工作(与API 19或更高版本相比)?

问题描述:
我正在使用WebView进行聊天。

  1. 首先我像这样加载HTML: webView.loadUrl(url);
  2. 然后我再次使用loadUrl发送聊天消息,如下所示: webView.loadUrl(javaScript);
  3. 这在API> = 19中完全正常,但在API< = 18中无效。

    仍会从其他设备收到聊天消息,但其他设备不会从API为18或更低的设备收到任何消息。 使用完全相同的代码。

    我经常搜索并继续搜索。如果你有答案,任何我可以测试或可以将我重定向到相关信息的想法请分享。提前谢谢。

    修改:
    字符串中的JavaScript标记设置为小写(具有相同的问题): webView.loadUrl(“javascript:”+ javaScriptFunction);

2 个答案:

答案 0 :(得分:3)

<强>解

我发现问题是JavaScript函数中发送的(编码)消息参数中包含换行符[ \ n ]。使用拆分功能 msg.split(&#34; \ n&#34;); 删除它使其工作。

答案 1 :(得分:1)

我无法确定这是导致您出现问题的原因,但请尝试使用

webView.loadUrl("javascript:" + theJavaScriptCode);

小写"javascript:"

API 19+并不关心loadUrl中JavaScript协议的情况(尽管您可以在API 19+中使用evaluateJavascript()),但API 18和down不会&# 39;除非用小写字母书写,否则不承认。