2013-10-24 52 views
-1

我正在構建一個混合android應用程序(應用程序開發中的新增功能)。在應用程序的主要部分,我有一個webview。 webview顯示html內容/ javascript/css。如何使用android webview消耗rest api

我需要從我的web服務加載內容並將其放入我的webview。我如何去做這件事?

我的JavaScript

$(document).ready(function(){ 
    $.ajax({ 
    type: "POST", 
    url: "http://www.hiss.ly/api/test.php", 
    cache: false, 
    success: function(result){ 
     alert(result); 
    }, 
    error: function(result){ 
     alert("Error"); 
    } 
}); 
return false; 
}); 

</script> 

MainActivity.java

@SuppressLint("JavascriptInterface") 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    //Set the web view 
    WebView webView =(WebView)findViewById(R.id.webView); 
    webView.getSettings().setJavaScriptEnabled(true);//beware of XSS vulnerabiliUes 
    webView.setWebChromeClient(new WebChromeClient()); 
    webView.loadUrl("file:///android_asset/www/index.html"); 

} 

回答

0

由於跨域問題,它不起作用。下面的代碼解決了它。

webView.getSettings().setAllowUniversalAccessFromFileURLs(true); 
1

由於網頁流量是客戶端瀏覽器的情況下,你可以使用本地JavaScript XMLHTTPRequest對象來消耗你的web服務,或爲簡單起見,您可以使用jQuery ajax方法在您的webview配置中啓用JavaScript。

+0

嗨,還有一個問題,因爲我不是從HTTP加載我的WebView內容:// ...但是從文件://本地 – Slay

+0

的JavaScript/jQuery的似乎並不工作。 – Slay

+0

您需要在webview.getSettings()。setJavaScriptEnabled(true)的webview中啓用'javascript',並且當您從本地加載頁面時,應該引用在線jquery庫['loading online google library service'] (https://developers.google.com/speed/libraries/devguide#jquery) – xhamr