0

ボタンを含む HTML ファイルがあります。ボタンをクリックすると、ボタンに警告メッセージが表示されます。

HTMLファイルアセットフォルダーを配置しました。エミュレーターに正しくロードされ、ボタンが表示されますが、直面している問題は、ボタンのクリックが応答せず、ポップアップメッセージが表示されないことです。

JavaScript も有効にしましたが、結果は否定的でした。次に、アラート イベントを JavaScript コードに変更しましたが、機能しませんでした。ここにコードを追加しています。誰か助けていただければ幸いです。

public void onCreate(Bundle savedInstanceState)
{
     super.onCreate(savedInstanceState);
     setContentView(com.example.test.R.layout.activity_main);

     myWebView= (WebView) findViewById(com.example.test.R.id.webView1);
     myWebView.getSettings().setJavaScriptEnabled(true);
     myWebView.loadUrl("file:///android_asset/myown.html"); 
}

以下は私のHTMLページコードです

<!DOCTYPE html>
<html>
    <body>

        <button type="button" onclick="alert('Hello world!')">Click Me!</button>

    </body>
</html>
4

3 に答える 3

2

この目的のためにwebChromeClient、オーバーライド機能を使用する必要があります。onJsAlert()

WebView wv=new WebView(this);   
wv.setWebChromeClient(new WebChromeClient() {
    @Override
    public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
                //Do what you need to after alert is received
                return super.onJsAlert(view, url, message, result);
       }
于 2012-10-30T10:05:54.633 に答える
1

編集>これは最も単純な解決策ではないかもしれませんが、追加機能を提供します

私が似たようなものを作成したとき、それは 4.1.2 で動作しました。アラートは、素敵なホロ スタイルのポップアップを表示しました。私はオンライン リソースとwebchromeclientを使用しました(私の前の回答を参照してください)。

ただし、これが機能することを確認したい場合は、Android DevelopersのBuilding Web Apps in Webviewページをご覧になることをお勧めします。JavaScriptInterfaceについて説明します。これを使用して、HTML ページ (ローカルまたはオンライン) から JavaScript を結合できますが、代わりにネイティブ Java コードを実行できます。

EGこのようにHTMLを使用できます

<input type="button" value="Click Me!" onClick="showAndroidToast('Hello World!')" />

<script type="text/javascript">
    function showAndroidToast(toast) {
        Android.showToast(toast);
    }
</script>

このクラスを追加

public class JavaScriptInterface {
Context mContext;

/** Instantiate the interface and set the context */
    JavaScriptInterface(Context c) {
        mContext = c;
    }

    /** Show a toast from the web page */
    public void showToast(String toast) {
        Toast.makeText(mContext, toast, Toast.LENGTH_SHORT).show();
    }
}

その後、提供されたサンプルにこのコードを追加します。

myWebView.addJavascriptInterface(new JavaScriptInterface(this), "Android");
于 2012-10-30T10:06:33.190 に答える
-1

以下のコードは私の実稼働環境からのもので、完全に機能しています。htmlファイルをassestフォルダーに保存し、Activity.

コード:

String uri = "file:///android_asset/htmlpages/" + index + ".htm";
WebView wb = (WebView) findViewById(R.id.webView_Glossary);
wb.getSettings().setJavaScriptEnabled(true);
wb.loadUrl(uri);
于 2012-10-30T10:34:00.333 に答える