addJavascriptInterface
AndroidのWebViewはaddJavascriptInterface
メソッドでJavaScriptから呼び出せるメソッドを作成できる
参考: JavaScript から Android 側のメソッドを呼び出す
これがXamarinの場合はいくつかおまじないが必要という話
JavaScript用のクラスを作る
ポイントは3つ
- Java Objectを継承させる
- 公開するメソッドにJavascriptInterface属性を付与
- 公開するメソッドに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
を追加する必要がある