[英]Android Base64 String not display on a webview
我正在将此Base64字符串发送到javascript,并想在webview的textarea上显示,但没有成功,这是字符串:
Rk1SACAyMAAAAAF6AAAA / AFEAMUAxQEAAABpE0BkABZgXUDLAFBZXUCOAFZcXUA + AFtiXUBaAGPg XUAkAGfkXUBYAHZmXUBEAIFkXUA7AJRnXUBGALRtXYDTABNKRICzAC9YXYBGADVfXYBxAJdnXYCh AJ9kXYBaAN9sXUA1ACbhV0BCAGziV4AzADRbUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
当我在单行上对该字符串进行硬编码时,它也会正确显示在Web视图上。
String bsiso1 = "Rk1SACAyMAAAAAF6AAAA/AFEAMUAxQEAAABpE0BkABZgXUDLAFBZXUCOAFZcXUA+AFtiXUBaAGPgXUAkAGfkXUBYAHZmXUBEAIFkXUA7AJRnXUBGALRtXYDTABNKRICzAC9YXYBGADVfXYBxAJdnXYChAJ9kXYBaAN9sXUA1ACbhV0BCAGziV4AzADRbUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
这是我的代码:
public void showDialog(String dialogMsg){
browser.loadUrl("javascript:test(\""+bsiso+"\")");
Log.d("Bluetooth", "Bluetooth imei" + bsiso);
}
这是我的方法:
private void ReceiveCommand(byte[] data)
{
if((data[0]=='F')&&(data[1]=='T'))
{
switch(data[4])
{
case CMD_CAPTUREHOST:
{
int size=(byte)(data[5])+((data[6]<<8)&0xFF00)-1;
if(data[7]==1)
{
memcpy(mMatData,0,data,8,size);
mMatSize=size;
if(mMatData[0]==3){
bsiso=Base64.encodeToString(mMatData,0,mMatSize/*378*/,Base64.DEFAULT);
mEditText.setText(bsiso);
SaveTextToFile(bsiso);
AddStatusList("Capture Succeed");
}else{
bsiso=Base64.encodeToString(mMatData,0,378,Base64.DEFAULT);
mEditText.setText(bsiso);
SaveTextToFile(bsiso);
AddStatusList("Capture Succeed");
}
}
else
AddStatusList("Capture Fail");
}
break;
case CMD_GETSN:
{
int size=(byte)(data[5])+((data[6]<<8)&0xFF00)-1;
if(data[7]==1)
{
byte[] snb=new byte[32];
memcpy(snb,0,data,8,size);
String sn = null;
try {
sn = new String(snb,0,size,"UNICODE");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
AddStatusList("SN:"+sn);
}
else
AddStatusList("Get SN Fail");
}
break;
}
}
}
注意:-单行中的硬编码字符串在webview上显示得很好。但是当我在参数中发送字符串时,则不显示.waht是问题,请帮忙。
问题是换行符破坏了JavaScript代码。 从字符串中删除EOL或在html代码中的单独的行或段落中显示字符串。
请注意,这不会在任何支持JavaScript的浏览器中进行编译(您可以在Chrome控制台或其他工具中对其进行测试):
test("a line
另一个”);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.