Интеграция Android WebChromeClient с javaScript дает неожиданный незаконный токен
Home.java
public void updatePhoto(Bitmap bitmap) {
String bitmapStr = BitMapToString(bitmap);
Home.currentBmp = bitmap;
String parameter = "data:image/jpeg;base64," + bitmapStr;
webView1.loadUrl("javascript:var script = document.createElement('script');" +
"script.type='text/javascript';script.src='form.js';" +
"script.onload=" + "processImage('" + parameter + "');" +
//"script.onload=" + "processImage(':/;//');" +
"document.getElementsByTagName('head').item(0).appendChild(script);");
Log.v(parameter, "QWERTY");
Log.v("QWERTY", parameter);
}
form.js
function processImage(img) {
alert('process image end');
}
эта функция преобразует объект Bitmap в строку base64, а затем выполняет внешний javascript function (form.js -> processImage(var))
, Однако он не выполняет processImage и дает Uncaught SyntaxError: Unexpected token ILLEGAL
, Однако когда я раскомментирую
//"script.onload=" + "processImage(':/;//');" +
строка и комментарий в
"script.onload=" + "processImage('" + parameter + "');" +
кажется, что функция работает хорошо. Возможное значение для переменной параметра будет
data:image/jpeg;base64,iVBORw0KgoAAAANSHUEgAAA......
Я спрашиваю, как заставить функцию javaScript работать с этим параметром? Спасибо!