Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Webview客户端文件openfilechooser返回空白白屏_Android_Eclipse_Webview_Android Webview - Fatal编程技术网

Android Webview客户端文件openfilechooser返回空白白屏

Android Webview客户端文件openfilechooser返回空白白屏,android,eclipse,webview,android-webview,Android,Eclipse,Webview,Android Webview,关于让openfilechooser在Android上工作的问题,有几个问题,我已经应用了推荐的解决方案 我的问题不是它在4.4上还不能工作,因为我将在下一步解决这个问题,但我只需要它在我的测试设备4.2.2上工作。注8,但是一旦选择了图像,它就会返回一个空白的白色屏幕 我已经重新检查了我的代码,审查了许多解决方案,他们都给出了相同的解决方案,但我似乎找不到哪里出了问题 这是我的密码: private ValueCallback<Uri> mUploadMessage; pr

关于让openfilechooser在Android上工作的问题,有几个问题,我已经应用了推荐的解决方案

我的问题不是它在4.4上还不能工作,因为我将在下一步解决这个问题,但我只需要它在我的测试设备4.2.2上工作。注8,但是一旦选择了图像,它就会返回一个空白的白色屏幕

我已经重新检查了我的代码,审查了许多解决方案,他们都给出了相同的解决方案,但我似乎找不到哪里出了问题

这是我的密码:

 private ValueCallback<Uri> mUploadMessage;  
 private final static int FILECHOOSER_RESULTCODE=1;  

 @Override  
 protected void onActivityResult(int requestCode, int resultCode,  
                                    Intent intent) {  
  if(requestCode==FILECHOOSER_RESULTCODE)  
  {  
   if (null == mUploadMessage) return;  
            Uri result = intent == null || resultCode != RESULT_OK ? null  
                    : intent.getData();  
            mUploadMessage.onReceiveValue(result);  
            mUploadMessage = null;  
  }
  }     

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_team_page);
    mHandler = new Handler();




getUser = ((MyData)getApplicationContext());


TimeZone tz = TimeZone.getDefault();
    Date now = new Date();
    int offsetFromUtc = tz.getOffset(now.getTime()) / 3600000;
    m2tTimeZoneIs = Integer.toString(offsetFromUtc);

userCredentials = getApplicationContext().getSharedPreferences("me2team", MODE_PRIVATE);

isShowingDesktop = false;

m2tUser = getUser.getCredentialsUser();
m2tPswd = getUser.getCredentialsPwd();
isPremiumUser = getUser.getPremiumUser();

tempWebURL = getResources().getString(R.string.teamURLMobile);
webURL = tempWebURL + "?username=" + m2tUser + "&password=" + m2tPswd + "&mobile=1&offSetHours=" + m2tTimeZoneIs;

    webView = (WebView) findViewById(R.id.teamWebView);
    webView.getSettings().setJavaScriptEnabled(true);
    webView.getSettings().setSavePassword(false);
    webView.getSettings().setSupportZoom(true);
    webView.getSettings().setBuiltInZoomControls(false); //as per Janet's request
    webView.getSettings().setUseWideViewPort(true);
    webView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
    webView.setScrollbarFadingEnabled(false);
    webView.getSettings().setLoadWithOverviewMode(true);
    webView.setInitialScale(70);

    WebSettings settings = webView.getSettings();
    settings.setDomStorageEnabled(true);

    webView.setAlpha(255);

    webView.setWebChromeClient(new WebChromeClient() {

      @SuppressWarnings("unused")
    public void openFileChooser(ValueCallback<Uri> uploadMsg) {  

          mUploadMessage = uploadMsg;  
          Intent i = new Intent(Intent.ACTION_GET_CONTENT);  
          i.addCategory(Intent.CATEGORY_OPENABLE);  
          i.setType("image/*");  
          TeamPage.this.startActivityForResult(Intent.createChooser(i,"File Chooser"), FILECHOOSER_RESULTCODE);  

         }

      // For Android 3.0+
      @SuppressWarnings("unused")

         public void openFileChooser( ValueCallback uploadMsg, String acceptType ) {
         mUploadMessage = uploadMsg;
         Intent i = new Intent(Intent.ACTION_GET_CONTENT);
         i.addCategory(Intent.CATEGORY_OPENABLE);
         i.setType("*/*");
         TeamPage.this.startActivityForResult(
         Intent.createChooser(i, "File Browser"),
         FILECHOOSER_RESULTCODE);
         }

      //For Android 4.1

         @SuppressWarnings("unused")
        public void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType, String capture){
             mUploadMessage = uploadMsg;  
             Intent i = new Intent(Intent.ACTION_GET_CONTENT);  
             i.addCategory(Intent.CATEGORY_OPENABLE);  
             i.setType("image/*");  
             TeamPage.this.startActivityForResult( Intent.createChooser( i, "File Chooser" ), TeamPage.FILECHOOSER_RESULTCODE );

         }

      public void onProgressChanged(WebView view, int progress)
      {
          activity.setTitle("Loading...");
          activity.setProgress(progress * 100);             
          if(progress == 100)
          {
              activity.setTitle(R.string.app_name);

          }                  
      }             
  });

  webView.setWebViewClient(new WebViewClient());           
我与服务器chap进行了检查,当我选择文件时,他没有看到任何错误,因此它好像停止了任何操作。问题是,如果我退出网站,然后再重新登录,我仍然会得到相同的白色屏幕?直到我重新启动应用程序,它才会返回到网页,记住登录详细信息并自动登录


还有想法?

是否使用URI调用onActivitResult,并通过uploadMessage传回WebView?或者你没有看到有人打电话给你?另外,Android 4.4完全不支持这一点。openFileChooser是一个隐藏的API,技术上不应该被应用程序使用,它在KitKat中被删除。感谢Ksasq,我将查看onActivityResult,看看是什么。那么,我们现在如何处理Kitkat呢?是的,我的Galaxy5根本不会像Kitkat一样工作,但是Note8在我解决上述问题之前确实有效。目前,该应用程序的拥有者已经取消了该功能,直到我为所有版本的Android进行了分类。恐怕KitKat设备没有解决办法。是的,我知道。这将是一个需要一点时间和大量测试的修复。还不知道怎么处理Kitkat。