Hi Everyone,
In this post I will gonna be explaining about how to download PDF file into device on tapping/clicking the link button in webview Xamarin Forms.
Please follow the below steps to accomplish above task.
- Create a PCL/NET standard project. In my case I named it as “DownloadPDF”.
- Paste the following code in App.xaml.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Xamarin.Forms;
namespace DownloadPDF
{
public partial class App : Application
{
public App ()
{
InitializeComponent();
MainPage = new NavigationPage(new MainPage());
}
protected override void OnStart ()
{
// Handle when your app starts
}
protected override void OnSleep ()
{
// Handle when your app sleeps
}
protected override void OnResume ()
{
// Handle when your app resumes
}
}
}
· Paste the following code MainPage.xaml
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:DownloadPDF"
Title="Download PDF"
x:Class="DownloadPDF.MainPage">
<StackLayout>
<WebView x:Name="Browser"
Source ="http://www.pdfpdf.com/samples.html"
Navigating="webOnNavigating"
HorizontalOptions="FillAndExpand"
VerticalOptions="FillAndExpand"/>
</StackLayout>
</ContentPage>
Here, I am giving http://www.pdfpdf.com/samples.html as source. Actually it contains some - sample PDF files. I will try to download those PDF file(s).
- Paste the following code MainPage.xaml.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;
namespace DownloadPDF
{
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
}
protected void webOnNavigating(object sender, WebNavigatingEventArgs e)
{
if (e.Url.Contains(".pdf"))
{
// Retrieving the URL
var pdfUrl = new Uri(e.Url);
// Open PDF URL with device browser to download
Device.OpenUri(pdfUrl);
// Cancel the navigation on click actions
// (retains in the same page.)
e.Cancel = true;
}
}
}
}
After then, set Android or iOS project as a startup project, run the application on the respective platforms.
Output:
Please raise your doubts in the comments section, will back to you with answers.
Thanks for reading the article.
No comments:
Post a Comment