Интеграция 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 работать с этим параметром? Спасибо!

0 ответов

Другие вопросы по тегам