2014-01-10 49 views
0

我試圖將一些信息從Android本機類傳遞給javascript。 我正在接受一個包,將其轉換爲JSONObject並傳遞它的字符串表示形式。 但是,當試圖解析它在JS中,它失敗。Android Phonegap - 將JSONObject傳遞給javascript

這是我做的:

JSONObject jsonObject = new JSONObject(); 
    for (String key : bundle.keySet()) { 
     Object value = bundle.get(key); 
     try { 
      jsonObject.put(key, value.toString()); 
     } catch (JSONException e) { 
      // Do nothing 
     } 
    } 

    final String jsStatement = String.format(
      "window.doSomething('%s');", jsonObject.toString()); 

    cordova.getActivity().runOnUiThread(new Runnable() { 
     @Override 
     public void run() { 
      webView.loadUrl("javascript:" + jsStatement); 
     } 
    }); 

你能告訴我,爲什麼它沒有被在JS解析,我該怎麼解決呢?

+0

當你運行這段代碼,會發生什麼?任何在logcat中? – MBillau

+0

是的,它得到的JS方法,當我試圖做的JSON.parse(...)與收到的字符串它說:「意外的令牌在1」 – Asaf

+0

你可以呼應JSON對象,然後通過jsonlint運行它或者其他的東西?聽起來像你可能並沒有真正的JSON對象或其他東西。如果你正在創建一個JSON對象,然後做'window.doSomething('''我想也許這個''''是意想不到的標記? – MBillau

回答

0

查找到Javascript Interface標註可用於傳遞/從Java訪問值直接

+0

感謝你的回覆。我想我可能沒有很好地解釋我自己。來自本地類的調用(所以我不需要Javascript接口)但是,我傳遞了一個JSON字符串,它不會在JS中解析,這是我的問題... – Asaf