我有一個簡單的應用程序,可以選擇上傳圖片(圖庫或相機), 我使用了webview並設法使其工作。Android webview,openfilechooser終止
我有,當我打開「openfilechoosr」對話框,回來我的應用程序沒有選擇任何文件(通過背面或只需點擊我的應用程序的屏幕),比我的應用程序沒有響應了(直到問題android重新啓動),當我重新啓動它時,它顯示爲空白頁。
一些更多的信息:
的錯誤,我試圖打開應用程序,我下了文件選擇不選擇任何文件後(應用程序將重新啓動機器人後再次合作)每次我得到:
java.lang.Throwable中:EventHub.removeMessages就建立了WebViewCore之前(INT什麼= 107)不支持的
我的代碼: [MainActivity]
webView = (WebView) findViewById(R.id.webview);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setBuiltInZoomControls(true);
webView.getSettings().setSavePassword(false);
webView.getSettings().setSaveFormData(false);
webView.setWebViewClient(new MyWebViewClient());
webView.setWebChromeClient(new MyWebChromeViewClient());
webView.loadUrl(url);
private class MyWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
}
private class MyWebChromeViewClient extends WebChromeClient {
//@Override
public void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType) {
File imageStorageDir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), "MyApp");
// Create the storage directory if it does not exist
if (! imageStorageDir.exists()){
imageStorageDir.mkdirs();
}
File file = new File(imageStorageDir + File.separator + "IMG_" + String.valueOf(System.currentTimeMillis()) + ".jpg");
imageUri = Uri.fromFile(file);
final List<Intent> cameraIntents = new ArrayList<Intent>();
final Intent captureIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
final PackageManager packageManager = getPackageManager();
final List<ResolveInfo> listCam = packageManager.queryIntentActivities(captureIntent, 0);
for(ResolveInfo res : listCam) {
final String packageName = res.activityInfo.packageName;
final Intent intent = new Intent(captureIntent);
intent.setComponent(new ComponentName(res.activityInfo.packageName, res.activityInfo.name));
intent.setPackage(packageName);
intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
cameraIntents.add(intent);
}
uploadMessage = uploadMsg;
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType("image/*");
Intent chooserIntent = Intent.createChooser(intent,"Image Chooser");
chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, cameraIntents.toArray(new Parcelable[]{}));
activity.startActivityForResult(chooserIntent, FILECHOOSER_RESULTCODE);
}
請指教。
謝謝喬。