我有一个Xamarin项目,该项目具有一个Web视图,该视图调用文件选择器,然后用以下代码覆盖它:
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,就无法再次显示文件选择器。