Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

WebViewでカスタムURLを動作させるには

More than 1 year has passed since last update.

WebViewでカスタムURLを動作させるには

Xamarin.FormsのWebViewを使ったアプリ内でHTMLを開いた際に、JavaScriptのwindow.openでGoogleMapsアプリが開かなかったので調べてみた。
同じHTMLをSafariで開いた際に、カスタムURLが動作し、GoogleMaps等の別アプリが起動するようになっている前提とする。

WebViewを継承させたRendererを使う

参考:Xamarin.Forms(iOS)でjavascriptのwindow.open()を動作させるには(英語)
以下抜粋。window.open実行時に下記メソッドが呼ばれる。
URLがカスタムURL形式になっていればアプリが起動する。

MyWebViewRenderer.cs
[Export("webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:")]
public WKWebView CreateWebView(WKWebView webView,WKWebViewConfiguration configuration,WKNavigationAction action, WKWindowFeatures  features)
{
    if (action.Request.Url != null)
    {
        NSUrl url = action.Request.Url;
        UIApplication.SharedApplication.OpenUrl(url);
    }
    return null;
}
ChaomioSoft
フリーランスのエンジニアです。
https://www.chaomiosoft.com
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away