Xamarin Android переопределение кнопки отмены OnShowFileChooser - PullRequest
0 голосов
/ 06 марта 2020

У меня есть проект Xamarin, в котором есть веб-представление, которое вызывает средство выбора файлов, которое я затем перезаписываю с помощью следующего кода:

private void OnActivityResult(int requestCode, Result resultCode, Intent data)
{
    if (requestCode == 1)
    {
        if (null == mUploadMessage)
            return;

        mUploadMessage.OnReceiveValue(WebChromeClient.FileChooserParams.ParseResult((int)resultCode, data));
        mUploadMessage = null;
    } else {
        mUploadMessage.OnReceiveValue(null);
        mUploadMessage = null;
    }
}

public override bool OnShowFileChooser(Android.Webkit.WebView webView, IValueCallback filePathCallback, FileChooserParams fileChooserParams)
{
    var appActivity = CrossCurrentActivity.Current.Activity as MainActivity;

    using (dialogBuilder = new AlertDialog.Builder(this.context))
    {
        dialogBuilder.SetTitle("Upload Image");
        dialogBuilder.SetPositiveButton("Choose from Library", delegate
        {
           Intent chooserIntent = fileChooserParams.CreateIntent();
           chooserIntent.SetType("image/*");
           appActivity.StartActivity(Intent.CreateChooser(chooserIntent, "Select Picture"), 1, OnActivityResult);
        }
        dialogBuilder.SetNegativeButton("Cancel", delegate
        {
           dialogBuilder.Dispose();
        });
    }
    return true;
}

Проблема заключается в том, что когда я перезаписываю средство выбора файлов и всплывающее окно диалоговое окно и нажмите кнопку отмены, вы не можете нажать на средство выбора файлов снова. Я попытался изменить значение возврата OnShowFileChooser на false, если для этого параметра установлено значение false, вы не сможете снова отобразить средство выбора файлов.

...