2011-09-08 65 views
0

我看過幾個類似於我的問題,但沒有一個似乎完全回答我的問題。有java和javascript交互的麻煩

我在我的資產文件夾中有一些javascript,我想使用WebView(或任何其他工作方式)將java對象綁定到它,以便我的服務器可以將更新發送給我的js,然後讓我的JS調用我的Java對象。我已經嘗試loadUrl()和loadDataWithBaseURL(),似乎都沒有工作,我使用getURL()後設置它來檢查它,它總是返回null。看過其他問題後,我可以告訴我正確引用了路徑(或至少與它們相同)。

我應該注意到它是一個.js文件,而不是一個帶有js的html文件。但是,我沒有看到任何說不起作用的東西/我不應該那樣做。

這裏是我的代碼來設置它:

interacter = (WebView) findViewById(R.id.interact); 
    interacter.getSettings().setJavaScriptEnabled(true); 
    interacter.getSettings().setJavaScriptCanOpenWindowsAutomatically(true); 
    interacter.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE); 
    interacter.setClickable(true); 
    interacter.addJavascriptInterface(game, "Android"); 
    //loadDataWithBaseURL was here 
    Log.i("Path is", interacter.getUrl() +" "); 

上午我做錯了什麼,有沒有更好的辦法做到這一點,這是否即使工作?

編輯

我注意到使用loadDataWithBaseURL()錯誤(在註釋行中我的代碼是它在哪裏),我期待成的時刻。幫助這個還是讚賞

+0

你在哪裏調用'setContentView(int)'? –

+0

我知道你不能用這種方式使用loadURL(),因爲它被認爲是一個安全問題,而且我不小心放錯了代碼。我將編輯 –

+0

在此之前我調用了setContentView(int) –

回答