を使用してJavaScriptにパイソンから私が遊んだ(私は時間のためにそれをグーグルました:))私は、簡単な質問への答えを知りたいと思ったが、私は良いもの を見つけhave'nt sl4a
をイベントを送信Pythonでsl4aと私は、jsからpythonスクリプトにイベントを送信することができますが、jsは私がpythonからjsに下のコードに入れたeventPostをキャッチしていません。
誰かがこれがどのように行われたか、またはregisterCallbackがない別の方法があるかどうかを知っていますか?
HTMLのCODE:
<html>
<head>
<script>
var droid = new Android();
function doit(){
droid.makeToast("Text send :=>"+document.getElementById("msg").value);
droid.eventPost("doit",document.getElementById("msg").value);
}
function alert_me(data){
droid.makeToast("All done!");
document.getElementById("msg").value = '';
}
droid.registerCallback("done",alert_me);
</script>
</head>
<body>
<input type="text" name="boton" id="msg" value="" />
<input type="button" name="boton" value="Go!" onclick="javascript:doit()" />
</body>
</html>
Pythonコード:
import android,time
if __name__ == '__main__' :
droid = android.Android()
droid.webViewShow("file:///sdcard/sl4a/scripts/sample.html")
while True:
event = droid.eventWait().result
if event["name"] == 'doit':
droid.makeToast("Event catched! %s" % event['data'])
droid.eventPost("done","Done message")
time.sleep(2)
droid.exit()
あなたのJS alert_me関数は受け取った引数を使用しません。もしそうであれば、argは 'data'というメンバを持つでしょう。あなたの関数には' data.data'があります。これは ''完了メッセージ ''と評価されます。 –