2016-02-09 61 views
0

我在我的離子應用程序上使用pouchdb,並且當前正在處理DOMException code:18錯誤。 該文檔要求我更改android的設置。更改android上的webview設置for Ionic應用程序

編輯 我發現我必須做出這些變化MainActivity.java 這是我寫的代碼。

import android.os.Bundle; 
import org.apache.cordova.*; 
import android.content.Context; 
import android.view.Menu; 
import android.webkit.WebChromeClient; 
import android.webkit.WebSettings; 
import android.webkit.WebView; 

public class MainActivity extends CordovaActivity 
{ 
    WebView webView = null; 
    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     webView = (WebView) findViewById(R.id.webView); 
     WebSettings settings = webView.getSettings(); 
     settings.setDatabaseEnabled(true); 
     String databasePath = getContext().getApplicationContext().getDir("database", Context.MODE_PRIVATE).getPath(); 
     settings.setDatabasePath(databasePath); 
     webView.setWebChromeClient(new WebChromeClient() { 
      @Override 
      public void onExceededDatabaseQuota(String url, String databaseIdentifier, long currentQuota, long estimatedSize, 
               long totalUsedQuota, WebStorage.QuotaUpdater quotaUpdater) { 
      quotaUpdater.updateQuota(estimatedSize * 2); 
      } 
     }); 
     // Set by <content src="index.html" /> in config.xml 
     loadUrl(launchUrl); 
    } 
} 

當我編譯此,我得到錯誤 - R.id.webView - >看來我的資源名稱不正確,不能在資源發現web視圖。我搜索了platforms/android文件夾,但找不到佈局文件。 此外,我不使用eclipse,我使用原子編輯器進行離子項目。

回答

0

這將無法正常工作,因爲您沒有在佈局文件中定義webview。

但你可以做這樣的:

SystemWebView webView = null; 
    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     webView = (SystemWebView) appView.getView(); 
     WebSettings settings = webView.getSettings(); 
     settings.setDatabaseEnabled(true); 
     String databasePath = appView.getContext().getApplicationContext().getDir("database", Context.MODE_PRIVATE).getPath(); 
     settings.setDatabasePath(databasePath); 
     webView.setWebChromeClient(new WebChromeClient() { 
      @Override 
      public void onExceededDatabaseQuota(String url, String databaseIdentifier, long currentQuota, long estimatedSize, 
               long totalUsedQuota, WebStorage.QuotaUpdater quotaUpdater) { 
       quotaUpdater.updateQuota(estimatedSize * 2); 
      } 
     }); 
     // Set by <content src="index.html" /> in config.xml 
     loadUrl(launchUrl); 
    } 
相關問題