Delpin Susai Raj Monday, 7 December 2020

Xamarin.Forms - Open App Store or Play Store in XamarinApp

 In this blog post, you will learn how to Open Play Store or App Store in XamarinApp.

Introduction

Xamarin.Forms code runs on multiple platforms - each of which has its own filesystem. This means that reading and writing files is most easily done using the native file APIs on each platform. Alternatively, embedded resources are a simpler solution to distribute data files with an app.

Prerequisites

  • Visual Studio 2017 or later (Windows or Mac)

Setting up a Xamarin.Forms Project

Start by creating a new Xamarin.Forms project. You wíll learn more by going through the steps yourself.

Create a new or existing Xamarin forms(.Net standard) Project. With Android and iOS Platform. 

Note: Your app must be live in App store and Playstore 

Android

Here, you need the Android app id Ex:com.twitter.android.

I'm using twitter for this sample.

https://play.google.com/store/apps/details?id=com.twitter.android

Code

if (Device.RuntimePlatform == Device.Android)
{
url = "https://play.google.com/store/apps/details?id=com.twitter.android";
await Browser.OpenAsync(url, BrowserLaunchMode.External);
}
view raw Android.cs hosted with ❤ by GitHub

iOS

Here, you need AppName and AppId with location you will get appname and aped from apple developer connect.

https://apps.apple.com/in/app/twitter/id333903271

Code

var location = RegionInfo.CurrentRegion.Name.ToLower();
if (Device.RuntimePlatform == Device.iOS)
{
url = "https://itunes.apple.com/" + location + "/app/twitter/id333903271?mt=8";
await Browser.OpenAsync(url, BrowserLaunchMode.External);
}
view raw iOS.cs hosted with ❤ by GitHub

Simple UI

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:d="http://xamarin.com/schemas/2014/forms/design"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:TitleView="clr-namespace:XamarinApp.CustomView"
mc:Ignorable="d" x:Class="XamarinApp.MainPage">
<NavigationPage.TitleView>
<TitleView:TitleView/>
</NavigationPage.TitleView>
<StackLayout Margin="0,100,0,0" VerticalOptions="StartAndExpand">
<Image VerticalOptions="Center" Source="xamarinmonkeysbanner.png"/>
<Button Text="Update your app" Clicked="Button_Clicked" />
</StackLayout>
</ContentPage>
view raw MainPage.xaml hosted with ❤ by GitHub

Full Source Code

MainPage.xaml.cs

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Essentials;
using Xamarin.Forms;
namespace XamarinApp
{
// Learn more about making custom code visible in the Xamarin.Forms previewer
// by visiting https://aka.ms/xamarinforms-previewer
[DesignTimeVisible(false)]
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
}
async void Button_Clicked(System.Object sender, System.EventArgs e)
{
string url = string.Empty;
var location = RegionInfo.CurrentRegion.Name.ToLower();
if (Device.RuntimePlatform == Device.Android)
url = "https://play.google.com/store/apps/details?id=com.twitter.android";
else if (Device.RuntimePlatform == Device.iOS)
url = "https://itunes.apple.com/" + location + "/app/twitter/id333903271?mt=8";
await Browser.OpenAsync(url, BrowserLaunchMode.External);
}
}
}

Alternate way

You can use Lancher.OpenAsync also for opening App Store and Play store.

Launcher.OpenAsync(new Uri("https://itunes.apple.com/in/app/facebook/id284882215?mt=8"));
view raw Launcher.cs hosted with ❤ by GitHub

Using Dependency Service

Interface

using System;
namespace XamarinApp
{
public interface IOpenAppStore
{
void OpenAppStore();
}
}

iOS Implementation

Below sample code for open App store in App iOS.

[assembly:Dependency(typeof(AppStoreImplementation))]
namespace XamarinApp.iOS
{
public class AppStoreImplementation : IOpenAppStore
{
public void OpenAppStore()
{
Device.OpenUri(new Uri("https://itunes.apple.com/in/app/facebook/id284882215?mt=8"));
}
}
}

Android Implementation

Below sample code for open play store in App android. 

[assembly:Dependency(typeof(AppStoreImplementation))]
namespace XamarinApp.Android
{
public class AppStoreImplementation : IOpenAppStore
{
public void OpenAppStore()
{
Device.OpenUri(new Uri("https://play.google.com/store/apps/details?id=com.twitter.android"));
}
}
}

Debug your App

I hope you have understood you will learn how to Open Play Store or App Store in XamarinApp.

Thanks for reading. Please share your comments and feedback. Happy Coding :)