2017-01-27 6 views
0

Следующий код предназначен для фрагментации для вызова файла javascript (MyMap) и вызова функции (updateJSONandMap). Сама функция отправляет JSON на сервер и принимает три параметра. Он работает, пока первый параметр жестко запрограммирован («Инцидент»), но не будет работать, когда я создам переменную.Вызов функции javascript не принимает параметр переменной

  webview.getSettings().setJavaScriptEnabled(true); 
      webview.getSettings().setDomStorageEnabled(true); 
      webview.loadUrl("file:///android_asset/MyMap.html"); 
      webview.setWebViewClient(new WebViewClient() { 
       public void onPageFinished(WebView view, String url) { 
        webview.loadUrl("javascript:updateJSONandMap('Incident'," + latitude + "," + longitude + ")"); 
       } 
      }); 

Блок текста JSON является строка

  Event: { 
       Action: 'PUT', 
       Value: {"S": UserEvent} 
      }, 

Очевидный создать переменную

final String incident = "incident2"; 

, а затем

webview.loadUrl("javascript:updateJSONandMap(" + incident + "," + latitude + "," + longitude + ")"); 

не создает ошибку , но не отправляет JSON сервер

+1

очевидно incident2 является переменной, «incident2» является строка – Selvin

ответ

1

Редактировать: Я думаю, может быть ошибка в вашей строке, первая incident окружена одинарными котировками. Будет ли эта строка работать?

"javascript:updateJSONandMap('" + incident + "'," + latitude + "," + longitude + ")"; 

Что делать, если вы так делаете?

final String incident = "incident2"; 
String loadUrlParam = `javascript:updateJSONandMap('${incident}', ${latitude}, ${longitude})`; 

webview.loadUrl(loadUrlParam); 
+1

Это не создает ошибку, но он не посылает JSON либо ... – Iorek

+1

Я просто понял это, как я пришел к типу назад ответ! Спасибо - webview.loadUrl («javascript: updateJSONandMap (« + инцидент + »,« + широта + »,« + долгота + »)»); – Iorek

Смежные вопросы