0

在我的应用程序中,我正在使用 webview,并且正在打开 URL“drive.google.com/keep” 在网页中创建注释时,可以选择从图库中选择图像,当我点击它时选择图像没有任何反应,应用程序没有做任何事情就呆在那里。在 Web 浏览器中,它可以正确打开图库。我想我错过了启用我不知道的东西。这是我的代码:

活动代码:

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);
}
}

任何帮助将非常感激。谢谢

4

1 回答 1

0

你没有做错什么。浏览器用于支持文件上传(并从库中挑选项目)的机制不是 WebView 应用程序可用的公共 API。

也就是说,您可以使用一些技巧来获得您想要的行为;但是请注意,这些技巧在 Android 4.4 中不起作用,并且在 KitKat 上的 WebView 中没有支持文件上传的解决方法。

于 2014-02-18T00:31:29.427 回答