JavaScript
Android
Xamarin
Xamarin.Android

Xamarin.AndroidでのJavaScript⇔WebView間のやり取り

addJavascriptInterface

AndroidのWebViewはaddJavascriptInterfaceメソッドでJavaScriptから呼び出せるメソッドを作成できる
参考: JavaScript から Android 側のメソッドを呼び出す

これがXamarinの場合はいくつかおまじないが必要という話

JavaScript用のクラスを作る

ポイントは3つ

  1. Java Objectを継承させる
  2. 公開するメソッドにJavascriptInterface属性を付与
  3. 公開するメソッドにExport属性を付与
JavaScriptHandler.cs
//1. Java Objectを継承
class JavaScriptHandler : Java.Lang.Object
{
    //2. 3. 属性付与
    [Export]
    [JavascriptInterface]
    public void hogehoge()
    {
        SomeFunction();
    }
}

1.はXamarinでJavaっぽいことやるときはいつものおまじない
2.はAndroid 4.2以降addJavascriptInterfaceがセキュリティ面で制限されたことによる影響でJavaの場合でも必要

3.がXamarinのときにだけ必要なおまじない
ここにたどり着くのに色々調べまわった…
なお、これをつけるためにはプロジェクトの参照にMono.Android.Exportを追加する必要がある

参考