将变量从ChromeClient传递回WebView

时间:2017-11-28 13:36:57

标签: java android webview

所有WebView文件上传教程/指南/文章都显示我使用 WebChromeClient 这样

myWebView.setWebChromeClient(new WebChromeClient() {

        @Override
         public boolean onShowFileChooser(WebView webView, ValueCallback<Uri[]> filePathCallback,              FileChooserParams fileChooserParams) {
                 mFilePathCallback = filePathCallback;
                // Launch Intent for picking file
                return true;
         }
});

所以在这里我们没有使用我们自己的 WebChromeClient 从单独的文件类扩展原来,我们只是宣布新的笔直的 setWebChromeClient 参数覆盖所有需要的方法,它很酷,但如果我的客户在单独的文件中会怎么样?

如果我的 MainActivity 类看起来像这样

,该怎么办?
import com.example.app.ModifiedWebViewClient;

使用后者

webView.setWebChromeClient(new ModifiedWebChromeClient());

我的 ModifiedWebChromeClient

public class ModifiedWebChromeClient extends WebChromeClient {
     ....

我如何将 filePathCallback onShowFileChooser 传回 MainActivity

1 个答案:

答案 0 :(得分:0)

使用静态变量访问该值。 在MainActivity中声明一个静态变量, 将filePathCallback值分配给该静态变量。

  MainActivity.staticvariable=filePathCallback;