2014-02-10 84 views
0

在我的應用程序中,我使用的是webview,並且我打開url「drive.google.com/keep」 並在網頁中創建註釋時,可以選擇從圖庫中選擇圖像當我點擊圖片來選擇圖片時,沒有任何反應,應用程序停留在那裏,而沒有做任何事情。在Web瀏覽器中,它正確地打開畫廊。我想我錯過了一些我不知道的東西。這裏是我的代碼:Webview不會打開畫廊

活動代碼:

public void webviewSetup() { 
    setContentView(R.layout.activity_main); 

    CookieSyncManager.createInstance(this); 

    keepWebView = (WebView) findViewById(R.id.activity_main_webview); 

    keepWebView.addJavascriptInterface(keepWebView, url); 
    WebSettings webSet = keepWebView.getSettings(); 
    webSet.setJavaScriptEnabled(true); 

    final ProgressBar pb = getProgressBar(); 
    if (pb != null) 
     pb.setVisibility(View.VISIBLE); 
    // Enabling local database 
    webSet.setDatabaseEnabled(true); 

    // Enable manifest cache. 
    String cachePath = this.getApplicationContext() 
      .getDir("cache", Context.MODE_PRIVATE).getPath(); 
    webSet.setAppCachePath(cachePath); 
    webSet.setAllowFileAccess(true); 
    webSet.setAppCacheEnabled(true); 
    webSet.setDomStorageEnabled(true); 
    // webSet.setAppCacheMaxSize(1024 * 1024 * 8); 
    webSet.setCacheMode(WebSettings.LOAD_DEFAULT); 

    // loads the url 
    keepWebView.loadUrl(url); 
    keepWebView.setWebViewClient(new KeepWebViewClient(this, keepWebView, 
      pb)); 
} 

而且我KeepWebViewClient.class

public class KeepWebViewClient extends WebViewClient { 
Activity activity; 
WebView wv; 
View pd; 

public KeepWebViewClient(Activity activity, WebView wv, View pd) { 
    this.activity = activity; 
    this.wv = wv; 
    this.pd = pd; 
} 

@Override 
public boolean shouldOverrideUrlLoading(WebView mWebView, String url) { 
    mWebView.loadUrl(url); 
    return true; 
} 

@Override 
public void onPageFinished(WebView view, String url) { 
    if (pd != null) 
     pd.setVisibility(View.GONE); 

    CookieSyncManager.getInstance().sync(); 
    super.onPageFinished(view, url); 
} 

@Override 
public void onPageStarted(WebView view, String url, Bitmap favicon) { 
    Log.d("GoogleApps", "loading " + url); 

    if (pd != null) 
     pd.setVisibility(View.VISIBLE); 
    super.onPageStarted(view, url, favicon); 
} 
} 

任何幫助將非常感激。謝謝

回答

0

你沒有做錯什麼。瀏覽器用於支持文件上傳(以及從圖庫中選取項目)的機制不是可供WebView應用程序使用的公共API。

也就是說,你可以使用一些技巧來獲得你想要的行爲;但請注意,這些技巧在Android 4.4,中不起作用,並且沒有在WebKit上支持WebView上的文件上傳的解決方法。