Приложение вылетает при нажатии на кнопку экспорта таблицы данных

#android #asp.net-mvc #webview #datatable #activitynotfoundexception

#Android #asp.net-mvc #webview #datatable #activitynotfoundexception

Вопрос:

ПРИВЕТ, у меня есть веб-сайт в Asp.net где я использую таблицы данных с кнопками экспорта, такими как CSV Excel Pdf

Я создал приложение WebView для Android для сайта. Но когда я нажимаю на любую кнопку экспорта, приложение вылетает.

Вот мой код для загрузки

  myWebview.setDownloadListener(new DownloadListener() {
                @Override
                public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimetype, long contentLength) {
                    Intent i=new Intent(Intent.ACTION_VIEW);
                    i.setData(Uri.parse(url));
                    startActivity(i);
                }
            });
  

и вот отчет о сбое приложения

 android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=blob:http://192.168.43.1/bb78f8da-62b4-4d4e-83a6-683f3a167f25 }
    at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1816)
    at android.app.Instrumentation.execStartActivity(Instrumentation.java:1525)
    at android.app.Activity.startActivityForResult(Activity.java:4396)
    at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:767)
    at android.app.Activity.startActivityForResult(Activity.java:4355)
    at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:754)
    at android.app.Activity.startActivity(Activity.java:4679)
    at android.app.Activity.startActivity(Activity.java:4647)
    at in.gov.Example.MainActivity$1.onDownloadStart(MainActivity.java:78)
    at com.android.webview.chromium.Ap.onDownloadStart(WebViewContentsClientAdapter.java:485)
    at org.chromium.android_webview.AwContentsClientCallbackHelper$MyHandler.handleMessage(AwContentsClientCallbackHelper.java:25)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:165)
    at android.app.ActivityThread.main(ActivityThread.java:6375)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:883)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:773)
  

Пожалуйста, помогите мне исправить эту проблему. Я буду очень благодарен.

Ответ №1:

У вас нет ни одного приложения, в котором был бы объявлен фильтр намерений для типа данных, которые вы хотите просмотреть. Вам нужно обработать исключение с помощью try catch при вызове start activity для этого намерения, если какое-либо действие не найдено, и вы можете выполнить поиск в playstore для приложения, которое может di, которое работает для вас. Более того, вызываемый вами URL-адрес не определяет, используются ли его html, pdf или csv: Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://site")); startActivity(browserIntent);

внутри блока try catch

Комментарии:

1. Проверьте dat=blob: 192.168.43.1/bb78f8da-62b4-4d4e-83a6-683f3a167f25 . Я получаю эту ошибку из-за URL-адреса blob -объекта. При нажатии на любую кнопку экспорта данных, такую как pdf или Excel, генерируется URL-адрес blob. И я не в состоянии с этим справиться.

2. Я уже использую try catch, но я не могу загрузить с кнопок экспорта ТАБЛИЦ ДАННЫХ , таких как csv pdf Excel