字符串替换不'当通过android webView JavascriptInterface传递字符串时无法工作
String replace doesn't work when pass string through android webView JavascriptInterface
当我通过JavaScriptInterface将Java字符串传递到android webView时,出现了字符串替换问题。
下面是webView中的HTML(utf-8文件):
<html>
<head>
<script type="text/javascript">
a=window.MyAndroid.getPicEncStr(); //get string from Java side.
function getValue(){
b="ue";
if(a==b) {
d="match";
} else {
d="not match";
}
c=d+":"+a.replace("u","0")+b.replace("u","0");
document.getElementById("test").innerHTML=c;
}
</script>
</head>
<body>
<span id="test">test</span>
</body>
</html>
JavaScriptInterface代码如下:
import java.io.UnsupportedEncodingException;
import android.content.Context;
public class JavaScriptInterface {
private String unicodeToUtf8(String s) {
String str=null;
try {
str=new String( s.getBytes("utf-8") , "utf-8");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return str;
}
public String getPicEncStr() {
//return "ue"; //not work
return this.unicodeToUtf8("ue"); //not work
}
}
无论是否从"unicode"转换为"utf-8",当我调用webView.loadUrl("javascript:getValue()")时,span("id"="test")中的结果都是"match:ue0e"。
基本上字符串"a"等于字符串"b",但替换函数不适用于a,只适用于b。
有人能帮我吗?
谢谢。
我似乎找到了解决问题的方法:
<html>
<head>
<script type="text/javascript">
a=window.MyAndroid.getPicEncStr(); //get string from Java side.
function getValue(){
b="ue";
if(a==b) {
d="match";
} else {
d="not match";
}
a=new String(a); //<-- force convert java string to javascript string.
c=d+":"+a.replace("u","0")+b.replace("u","0");
document.getElementById("test").innerHTML=c;
}
</script>
</head>
<body>
<span id="test">test</span>
</body>
</html>
还是不明白为什么。当我转储"a"时,它显示"ue",当我试图转储"a[0]"时,显示"undefined",而"b[0]"是"u,我只能映像Java/Javascript字符串彼此不兼容,因此,需要显式转换。
相关文章:
- 如何在JavaScript中将字符串转换为函数引用
- jQuery中是否内置了任何字符串格式化函数
- Javascript,有没有一种方法可以将数组写成没有逗号或空格的单个文本字符串
- ng打开空字符串
- 正则表达式在字符串中找到base64
- 如何将字符串值从php页面发送到java脚本页面
- 子字符串/正则表达式以获取字符串中保存的 SRC 值
- 字符串在将其传递给另一个活动Android JavaScript时读取Null
- 对id以某个字符串开头的元素进行计数
- Javascript逻辑运算符和字符串/数字
- 反向字符串比较
- 如何有效地将游戏数据存储在URL查询字符串中
- 可变大小的JavaScript字符串如何成为基元类型
- 将DOM节点值与字符串Javascript进行比较
- 如何在 Javascript 中将变量的值从字符串转换为整数
- 本地存储中的字符串到字节数组转换
- JavaScript按钮/输入/函数,字符串反转
- 从查询字符串参数推断出正确的数据类型
- 高亮显示与数组字符串一起使用时文本插件中断
- 如何检查字符串的一部分与数组匹配