Launching PDF reader on windows phone 8

后端 未结 3 1426
野性不改
野性不改 2021-01-25 11:54

I\'m trying to launch pdf reader with the code below but it does not work. Can somebody help me?

    private async Task WriteData(string fileN         


        
相关标签:
3条回答
  • 2021-01-25 12:28

    just put the anyFile.pdf in Assets folder, and make its build action to Content, and then Just make the function Async ... and then Put "await" before Windows.System.Launcher.LaunchFileAsync(pdf); it worked fine for me. Nice. See this.

         private async void privacyPolicy_Click(object sender, EventArgs e)
              {
            var installedLocation = Windows.ApplicationModel.Package.Current.InstalledLocation;
            var assets = await installedLocation.GetFolderAsync("Assets");
            var pdf = await assets.GetFileAsync("PrivacyPolicy.pdf");
            await Windows.System.Launcher.LaunchFileAsync(pdf);
        }
    
    0 讨论(0)
  • 2021-01-25 12:33

    Called the API and saved the byte array to file

        public static async void WriteDataToIsolatedStorageFile(string fileName, byte[] data)
        {
            using (IsolatedStorageFile storageFile = IsolatedStorageFile.GetUserStoreForApplication())
            {
                using (IsolatedStorageFileStream stream = storageFile.OpenFile(fileName, FileMode.Create))
                {
                    if ((data != null) && (data.Length > 0))
                    {
                        await stream.WriteAsync(data, 0, data.Length);
                    }
                }
            }
        }
    

    opened the file in pdf reader using

        private async void StartExternalPDFApp()
        {
            StorageFolder localFolder = await FileManager.FindDirectory(FileManager.RelativeStorageDirectoryLocalStorage);
            StorageFile storageFile = await localFolder.GetFileAsync(PdfFileName);
            await Windows.System.Launcher.LaunchFileAsync(storageFile);
        }
    

    localFolder is Windows.Storage.ApplicationData.Current.LocalFolder

    0 讨论(0)
  • 2021-01-25 12:38

    LaunchUriAsync isn't supported on Windows Phone 8 per the documentation. It throws an exception if called

    You can use Windows.System.Launcher.LaunchFileAsync to launch a StorageFile.

    This code works for example (assming there's a file called "metro.pdf" in the project, with the Build Action set to Content, with Copy to Output Directory set to Copy if Newer).

    var installedLocation = Windows.ApplicationModel.Package.Current.InstalledLocation;
    var assets = await installedLocation.GetFolderAsync("Assets");
    var pdf = await assets.GetFileAsync("metro.pdf");
    Windows.System.Launcher.LaunchFileAsync(pdf);
    
    0 讨论(0)
提交回复
热议问题