Вызов FileOpenPicker в OnNavigatedTo работает только на Win 10 на ПК, но не на Win 10 Mobile - PullRequest
1 голос
/ 25 октября 2019

В приложении UWP я хочу предложить пользователю выбрать файл при переходе на страницу.

Я переопределяю метод OnNavigatedTo на странице и вызываю из него средство выбора. Работает на ПК без проблем. Но когда я запускаю его на мобильном устройстве с Windows 10 Mobile (Lumia 640), он не работает!

Просто для проверки, если я звоню CameraCaptureUI вместо FileOpenPicker, он работает без проблем наи ПК, и мобильный!

1 Ответ

2 голосов
/ 25 октября 2019

Вызов FileOpenPicker в OnNavigatedTo работает только на Win 10 на ПК, но не на Win 10 Mobile

Проблема заключается в том, что мобильное устройство является низкопроизводительным. Вызов средства выбора сразу после метода навигации приведет к тому, что устройство перестанет отвечать на запросы. Таким образом, вы можете добавить задержку задачи перед вызовом пикера, как показано ниже:

protected async override void OnNavigatedTo(NavigationEventArgs e)
{
    base.OnNavigatedTo(e);
    await Task.Delay(100);

    FileOpenPicker openPicker = new FileOpenPicker();
    openPicker.ViewMode = PickerViewMode.Thumbnail;
    openPicker.SuggestedStartLocation = PickerLocationId.PicturesLibrary;
    openPicker.FileTypeFilter.Add(".jpg");
    StorageFile file = await openPicker.PickSingleFileAsync();
    if (file != null)
    {

    }
    else
    {

    }

}
...