LoginSignup
8
12

More than 5 years have passed since last update.

Xamarin.Forms から Webブラウザで開く

Last updated at Posted at 2014-07-03

Xamarin.FormsからWebブラウザアプリ(Chrome,Safari)でURLを開くサンプルです。DependencyServiceを利用します。

プロジェクトの作成

新規にソリューションを作成します。種類はBlank Apps (Xamarin.Forms Portable)、名前はOpenWebBrowserSampleにします。

PCLプロジェクト

OpenWebBrowserSampleプロジェクトにインターフェースIWebBrowserService.csを作成します。

IWebBrowserService.cs
using System;

namespace OpenWebBrowserSample.Services
{
    public interface IWebBrowserService
    {
        void Open(Uri uri);
    }
}

iOSプロジェクト

OpenWebBrowserSample.iOSプロジェクトにWebBrowserService.csを作成し、OpenWebBrowserSampleプロジェクトで定義したIWebBrowserServiceインターフェースを実装します。

WebBrowserService.cs
using System;
using OpenWebBrowserSample.iOS;
using Xamarin.Forms;
using MonoTouch.UIKit;

[assembly: Dependency(typeof(WebBrowserService))]

namespace OpenWebBrowserSample.iOS
{
    public class WebBrowserService : IWebBrowserService
    {
        public void Open(Uri uri)
        {
            UIApplication.SharedApplication.OpenUrl (uri);
        }
    }
}

Androidプロジェクト

OpenWebBrowserSample.Androidプロジェクトも同様にWebBrowserService.csを作成し、OpenWebBrowserSampleプロジェクトで定義したIWebBrowserServiceインターフェースを実装します。

WebBrowserService.cs
using System;
using Android.Content;
using OpenWebBrowserSample.Android;
using Xamarin.Forms;

[assembly: Dependency(typeof(WebBrowserService))]

namespace OpenWebBrowserSample.Android
{
    public class WebBrowserService : IWebBrowserService
    {
        public void Open (Uri uri)
        {
            Forms.Context.StartActivity (
                new Intent (Intent.ActionView,
                    global::Android.Net.Uri.Parse(uri.AbsoluteUri) ));
        }
    }
}

Forms.Contextからコンテキストを取得してStartActivityメソッドを実行します。インテントに含めるUriはAndroid.Net.Uri型に変換する必要があります。

使用例

var uri = "http://xamarin.com/";
DependencyService.Get<IWebBrowserService> ().Open(new Uri(uri)); // open in WebBrowser
8
12
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
12