コード例 #1
0
        /// <summary>
        /// Processes the given intent, loading files passed using content resolver.
        /// </summary>
        /// <param name="intent">intent to process</param>
        private void ProcessIntent(Intent intent)
        {
            try
            {
                if (intent.DataString != null &&
                    intent.DataString.StartsWith(Shared.Model.AppResourceUri.DefaultScheme))
                {
                    Core.App.OpenAppResourceUri(intent.DataString);
                    return;
                }

                var helper = new IntentFilterHelper(this.ContentResolver);

                string filename = Path.GetFileName(helper.GetFilenameFromIntent(intent));
                if (filename == null)
                {
                    return;
                }

                var stream = helper.GetStreamFromIntent(intent);

                if (stream != null)
                {
                    Core.App.RunOnUiThread(async() => await OpenFileHelper.OpenFileAsync(stream, filename));
                }
            }
            catch (Exception)
            {
                // ignore errors
            }
        }
コード例 #2
0
        /// <summary>
        /// Called when a file associated with the UWP app is opened.
        /// </summary>
        /// <param name="args">file activation event args</param>
        protected override void OnFileActivated(FileActivatedEventArgs args)
        {
            this.SetupRootFrame(args, null);

            if (args.Files.Count > 0)
            {
                var file = args.Files[0] as StorageFile;

                Core.App.RunOnUiThread(async() =>
                {
                    using var stream = await file.OpenStreamForReadAsync();
                    await OpenFileHelper.OpenFileAsync(stream, file.Name);
                });
            }
        }
コード例 #3
0
ファイル: MainPage.xaml.cs プロジェクト: vividos/WhereToFly
        /// <summary>
        /// Called when a file is dropped onto the main page
        /// </summary>
        /// <param name="sender">sender object</param>
        /// <param name="args">event args</param>
        private async void OnDrop(object sender, DragEventArgs args)
        {
            if (args.DataView.Contains(StandardDataFormats.StorageItems))
            {
                var items = await args.DataView.GetStorageItemsAsync();

                if (items.Count > 0)
                {
                    var file = items[0] as StorageFile;

                    Core.App.RunOnUiThread(async() =>
                    {
                        using var stream = await file.OpenStreamForReadAsync();
                        await OpenFileHelper.OpenFileAsync(stream, file.Name);
                    });
                }
            }
        }