2014-02-10 79 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上的文件上传的解决方法。