Android WebView loadUrl JavaScript 不工作 API <=18(但在 API >=19 中工作)
Android WebView loadUrl JavaScript not working API <=18 (but works in API >=19)
问题:
我必须做什么才能使 webView.loadUrl(javaScript) 在 API 18 或更低(与 API 19 或更高)相比工作?
问题描述:
我正在使用 WebView 进行聊天。
- 首先我像这样加载 HTML:webView.loadUrl(url);
- 然后我再次使用 loadUrl 发送聊天消息,如下所示:webView.loadUrl(javaScript);
这在 API >=19 中工作得很好,但在 API <=18 中不起作用。
仍然可以从其他设备收到聊天消息,但其他设备不会从 API 18 或更低的设备收到一条消息。 使用完全相同的代码。
我搜索了很多,还会继续搜索。如果您有答案,请分享我可以测试或可以将我重定向到相关信息的任何想法。提前谢谢你。
编辑:
字符串中的JavaScript标签设置为小写(同样问题):webView.loadUrl("javascript:" + javaScriptFunction);
我不能确定这是导致你问题的原因,但请尝试使用
webView.loadUrl("javascript:" + theJavaScriptCode);
小写 "javascript:"
.
API 19+ 不关心 loadUrl
中 JavaScript 协议的情况(尽管你可以在 [=20= 中使用 evaluateJavascript()
] 19+), 但 API 18 及以下不识别它,除非它写成小写。
解决方案
我发现问题是 JavaScript 函数中发送的(编码的)消息参数有一个换行符 [ \n ]。使用拆分函数 msg.split("\n"); 删除它使其工作。
问题:
我必须做什么才能使 webView.loadUrl(javaScript) 在 API 18 或更低(与 API 19 或更高)相比工作?
问题描述:
我正在使用 WebView 进行聊天。
- 首先我像这样加载 HTML:webView.loadUrl(url);
- 然后我再次使用 loadUrl 发送聊天消息,如下所示:webView.loadUrl(javaScript);
这在 API >=19 中工作得很好,但在 API <=18 中不起作用。
仍然可以从其他设备收到聊天消息,但其他设备不会从 API 18 或更低的设备收到一条消息。 使用完全相同的代码。
我搜索了很多,还会继续搜索。如果您有答案,请分享我可以测试或可以将我重定向到相关信息的任何想法。提前谢谢你。
编辑:
字符串中的JavaScript标签设置为小写(同样问题):webView.loadUrl("javascript:" + javaScriptFunction);
我不能确定这是导致你问题的原因,但请尝试使用
webView.loadUrl("javascript:" + theJavaScriptCode);
小写 "javascript:"
.
API 19+ 不关心 loadUrl
中 JavaScript 协议的情况(尽管你可以在 [=20= 中使用 evaluateJavascript()
] 19+), 但 API 18 及以下不识别它,除非它写成小写。
解决方案
我发现问题是 JavaScript 函数中发送的(编码的)消息参数有一个换行符 [ \n ]。使用拆分函数 msg.split("\n"); 删除它使其工作。