1

次のような入力HTMLを含むWebビューがあります。

<input type="file" name="upload" onChange="checkimg(this.value)"/>

およびJavaScript関数はそのコンポーネントに対応します

function checkimg(fName){
    fullName=fName;
    splitName = fullName.split(".");
    fileType = splitName[1];
    fileType = fileType.toLowerCase();
    if (fileType == 'jpg'|| fileType == 'gif' || fileType == 'png' || fileType == 'jpeg' )
    {} 
    else {
        alert("Choose file with end : jpg, gif, png, jpeg");
        }
}

入力タイプファイルをクリックしたときにイベントを取得したいと思います。どうすればいいですか?

4

1 に答える 1

0

読んだ後、ようやく自分で手に入れました。javascriptについて何も知らない場合や、ドキュメントの内容が非常に薄い場合は、ちょっと大変です。これが私の解決策です、これが他の人に役立つことを願っています:

そのように最後に2つのボタンを含むHTMLページで:

<div>
<button type="button" id="ok"
    style="font-weight: 700; margin-right: 20px;" onclick="validClick();">J'accepte</button>
<button type="button" id="no" onclick="refuseClick();">Je refuse</button>
</div>

clicのイベントをHTMLページの上部にあるjavascriptに送信します。

<script language="javascript">
function validClick() {
    valid.performClick();
    document.getElementById("ok").value = "J'accepte";
}
function refuseClick(){
    refuse.performClick();
    document.getElementById("no").value = "Je refuse";
}
</script>

validとrefuseは、メソッドを使用するためにjavascriptインターフェースを介して渡した2つのjavaオブジェクトです。したがって、Javaでは、2つのボタンを作成しました(アクティビティには実際には表示されません。ここではメソッド用にのみ表示され、HTMLボタンの影のようなものです:

valid = new Button(ctx);
valid.setOnClickListener(this);
refuse = new Button(ctx);
refuse.setOnClickListener(this);

次に、JavaScriptをWebViewに追加しました。

//javascriptを有効にします

WebSettings ws = wv.getSettings();
ws.setJavaScriptEnabled(true);

//JavaScriptイベントを記録するためのインターフェースを追加します

wv.addJavascriptInterface(valid, "valid");
wv.addJavascriptInterface(refuse, "refuse");

そして最後に、onClickメソッドでクリックイベントを処理します。

@Override
public void onClick(View v) {
    if (v.equals(valid)) {
        //do Something
    } else if (v.equals(refuse)) {
        //do Something else }
}

これがお役に立てば幸いです。

ありがとう

于 2012-07-19T17:58:47.367 に答える