1

静的 HTML ページをロードしている Android アプリがあります。ページが読み込まれたら、Javascript インターフェイスからメソッドを呼び出す JavaScript を挿入したいと思います。

問題は、Android 4.2.2 を搭載したデバイスで実行すると、この呼び出しが行われないことです (「オブジェクトにメソッドがありません ...」というエラーが表示されます)。

API レベル 17 以降のアプリ ビルドでこれを機能させるには、メソッドに @JavascriptInterface のアノテーションを付ける必要があることを私は知っています。その場合は機能します。私が抱えている問題は、アプリが API レベル 10 用に構築されているため、@JavascriptInterface にアクセスできないことです。

この時点で考えられるのは、アプリが 17 未満の API レベル用にビルドされている場合、これは Android 4.2.2 を実行しているデバイスでは機能しないということだけです。

これが本当かどうか、何か考えはありますか?

4

2 に答える 2

4

API 17 用にビルドしてみることもできますが、最小バージョンを低く設定してください。<uses-sdk android:minSdkVersion="10" android:targetSdkVersion="17"/> のようなもの

于 2013-03-22T13:19:03.473 に答える
3

私が抱えている問題は、アプリが API レベル 10 用に構築されているため、@JavascriptInterface にアクセスできないことです。

ビルド ターゲットを API レベル 17 に変更します (たとえば、Eclipse では、[プロジェクト] > [プロパティ] > [Android] に移動します)。yourandroid:minSdkVersionを 10 に設定すると、Lint は、API レベル 17 には存在するが API レベル 10 には存在しないものを使用している場所を指摘します。

この時点で、 を使用できるようになります@JavascriptInterface@TargetApiLint の苦情に基づいて、適切な注釈を追加する必要がある場合もあります。

于 2013-03-22T11:30:54.040 に答える