QPython3、Android 6.0;私はJSインスタンスはvar droid = new Android(); 問題を解決するためのヒント?QPython3 HTML GUIのJavascriptに関する問題
Pythonのコード(どちらの場合も同じ!):
import android
droid=android.Android()
droid.webViewShow('file:///storage/emulated/0/qpython/scripts3/test10_le_HTMLGUI_01.html')
while True:
result=droid.eventWaitFor('sag').result
droid.ttsSpeak(result['data'])
HTML-コード:test10_le_HTMLGUI_01.html(ケース1):
<html>
<head>
<title>Text To Speech</title>
<script>
var n = prompt("Hello JavaScript","");
var droid = new Android();
var speak = function() {
var n = prompt("Hello JavaScript","");
droid.eventPost("sag", document.getElementById("sag").value, 1);
}
</script>
</head>
<body>
<form onsubmit="speak(); return false;">
<label for="sag">What is your message?</label>
<input type="text" id="sag" />
<input type="submit" value="Speak" />
</form>
</body>
</html>
HTML-コード(ケース2):
<html>
<head>
<title>Text To Speech</title>
<script>
var droid = new Android();
var n = prompt("Hello JavaScript","");
var speak = function() {
var n = prompt("Hello JavaScript","");
droid.eventPost("sag", document.getElementById("sag").value, 1);
}
</script>
</head>
<body>
<form onsubmit="speak(); return false;">
<label for="sag">What is your message?</label>
<input type="text" id="sag" />
<input type="submit" value="Speak" />
</form>
</body>
</html>
ケース1の場合、プロンプト( "Hello JavaScript"、 "");ケース2では実行されません!
QPython3(アンドロイド6)SL4A eventPost()とeventWaitForは()次の例で正常に動作します(追加のための情報http://www.mithril.com.au/android/doc/を参照してください。):
import android, time
droid=android.Android()
t = 'Geschafft!'
print('debug 1')
droid.eventPost('Event1', t, 1)
print('debug 2')
print('debug 3')
result=droid.eventWaitFor('Event1').result
droid.ttsSpeak(result['data'])
print('debug 4')
print(result['data'])
証明を:あなたはラインドロイドをコメントアウトした場合。 eventPost( 'Event1'、t、1)それからeventWaitFor()は永遠にブロックされます!
多分私達は「QPython3 webViewShow - Script doesn't receiving data にし、代わりにJavaScriptをhttps://stackoverflow.com/questions/36478310/qpython-webview-javascript-android-object
よろしく グスタフ(2017年3月21日)