2017-03-21 6 views
0

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日)

答えて

1

使用ボトル()で同様の問題がまし。すでにQPython3に統合されており、かなり同じタスクのためのソリューションを提供しています。 https://bottlepy.org/docs/dev/bottle-docs.pdf

よろしく でボトル()のためのチュートリアルグスタフ

を探します
関連する問題