Add Support for input[type=file] File Chooser
This commit is contained in:
parent
fa70a64af9
commit
ad28a0ec68
@ -892,6 +892,42 @@ public class InAppBrowser extends CordovaPlugin {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Receive File Data from File Chooser
|
||||||
|
*
|
||||||
|
* @param requestCode the requested code from chromeclient
|
||||||
|
* @param resultCode the result code returned from android system
|
||||||
|
* @param intent the data from android file chooser
|
||||||
|
*/
|
||||||
|
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
|
||||||
|
// For Android >= 5.0
|
||||||
|
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
||||||
|
Log.i("mytag", "onActivityResult (For Android >= 5.0)");
|
||||||
|
// If RequestCode or Callback is Invalid
|
||||||
|
if(requestCode != FILECHOOSER_REQUESTCODE_LOLLIPOP || mUploadCallbackLollipop == null) {
|
||||||
|
super.onActivityResult(requestCode, resultCode, intent);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
mUploadCallbackLollipop.onReceiveValue(WebChromeClient.FileChooserParams.parseResult(resultCode, intent));
|
||||||
|
mUploadCallbackLollipop = null;
|
||||||
|
}
|
||||||
|
// For Android < 5.0
|
||||||
|
else {
|
||||||
|
Log.i("mytag", "onActivityResult (For Android < 5.0)");
|
||||||
|
// If RequestCode or Callback is Invalid
|
||||||
|
if(requestCode != FILECHOOSER_REQUESTCODE || mUploadCallback == null) {
|
||||||
|
super.onActivityResult(requestCode, resultCode, intent);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (null == mUploadCallback) return;
|
||||||
|
Uri result = intent == null || resultCode != cordova.getActivity().RESULT_OK ? null : intent.getData();
|
||||||
|
|
||||||
|
mUploadCallback.onReceiveValue(result);
|
||||||
|
mUploadCallback = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The webview client receives notifications about appView
|
* The webview client receives notifications about appView
|
||||||
*/
|
*/
|
||||||
@ -1087,35 +1123,5 @@ public class InAppBrowser extends CordovaPlugin {
|
|||||||
// By default handle 401 like we'd normally do!
|
// By default handle 401 like we'd normally do!
|
||||||
super.onReceivedHttpAuthRequest(view, handler, host, realm);
|
super.onReceivedHttpAuthRequest(view, handler, host, realm);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
|
|
||||||
// For Android >= 5.0
|
|
||||||
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
|
||||||
Log.i("mytag", "onActivityResult (For Android >= 5.0)");
|
|
||||||
// If RequestCode or Callback is Invalid
|
|
||||||
if(requestCode != FILECHOOSER_REQUESTCODE_LOLLIPOP || mUploadCallbackLollipop == null) {
|
|
||||||
super.onActivityResult(requestCode, resultCode, intent);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
mUploadCallbackLollipop.onReceiveValue(WebChromeClient.FileChooserParams.parseResult(resultCode, intent));
|
|
||||||
mUploadCallbackLollipop = null;
|
|
||||||
}
|
|
||||||
// For Android < 5.0
|
|
||||||
else {
|
|
||||||
Log.i("mytag", "onActivityResult (For Android < 5.0)");
|
|
||||||
// If RequestCode or Callback is Invalid
|
|
||||||
if(requestCode != FILECHOOSER_REQUESTCODE || mUploadCallback == null) {
|
|
||||||
super.onActivityResult(requestCode, resultCode, intent);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (null == mUploadCallback) return;
|
|
||||||
Uri result = intent == null || resultCode != cordova.getActivity().RESULT_OK ? null : intent.getData();
|
|
||||||
|
|
||||||
mUploadCallback.onReceiveValue(result);
|
|
||||||
mUploadCallback = null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user