2017-01-27 53 views
0

以下代碼是在Fragment中設計的,用於調用JavaScript文件(MyMap)並調用函數(updateJSONandMap)。該函數本身發送一個JSON到一個服務器並有三個參數。它在第一個參數硬編碼(「Incident」)時工作,但在創建變量時不起作用。調用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('」+ incident +「',」+ latitude +「,」+ longitude +「)」); – Iorek

相關問題