Android と ios で実行される Web アプリケーションのラッパーに取り組んでいます。次のように、単純なネイティブ インターフェイスを作成しました。
私の WebView には、次のものが含まれています。
addJavascriptInterface(new MyNativeJsIface(mContext), NATIVE_IFACE_JSNAME);
init() メソッドで。
インターフェイスの実装に進み、開発に使用しているテスト html に次の行を追加しました。
var myNativeCallIface = window.nativeIface;
そして、APIで定義したメソッドを次のようにhtmlから正常に呼び出すことができます:
alert("response from native:" + nativeIface.method1() );
これまでのところ、とても良いですよね?
違う...
私が直面している問題は、このコードを Web アプリケーション自体の html にロードできないことです。そのため、実際に変更せずにそのインターフェイスを Web アプリケーションの開発者に提供する方法が必要になります。彼らのコード。
私がやりたいのは、このコードを利用できるようにして、アプリケーションが Android で実行されているときに Android js コードをロードし、iOS で実行されているときに ios js 実装をロードするようにすることです (同じメソッド シグネチャを使用)。ユーザー エージェントをチェックしてそれに応じて動作するメソッドのラッパーを記述する必要はありません。
これは可能ですか?私はこれについてすべて間違っていますか?