0

質問1:

PythonとWebViewを使用してAndroidアプリケーションを作成しようとしています。

Python変数を取得してhtmlに送信し、javascriptの変数に保存できるかどうか疑問に思います。

私はこれを試しましたが、機能しません:

script.py

import android
import os, sys


ruta_del_proyecto = os.path.dirname(os.path.realpath(__file__))

droid = android.Android()
droid.webViewShow(ruta_del_proyecto + '/ui/prueba.html?ruta_del_proyecto=5')

print ruta_del_proyecto + '/ui/prueba.html?ruta_del_proyecto=5'

prueba.html

<html>
    <!--urta cel: file:///sdcard/sl4a/scripts/test1/ -->
  <head>
    <title>prueba</title>
    <script>
        var droid = new Android(); 

        function getUrlVars() {
        var vars = {};
        var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {
            vars[key] = value;
        });
        return vars;
        }

        var ruta_del_proyecto = getUrlVars()["ruta_del_proyecto"];

        alert (ruta_del_proyecto);
    </script>
  </head>
  <body>
  </body>
</html>

質問2:

「AndroidJavaIDE(AIDE)」を使用してscript.pyをAPKに作成し、インストールして開くと、WebViewが開きません

Pythonコードは実行されますが、WebViewが開きません

何か案が?

4

1 に答える 1

0

あなたができる簡単なハックがあります。Webkit WebView には、ページの読み込み後にトリガーされる「load-finished」イベントがあり、その後で JavaScript 関数を実行できます。

def on_load_finished(webview, frame):
    browser.execute_script('your-js-function('+yourVariable+');')

browser = webkit.WebView()
browser.connect("load-finished", on_load_finished)

json モジュールで辞書をシリアライズし、JS でデシリアライズすることで、辞書を引数として渡すことができることを覚えておいてください!

于 2012-12-17T12:07:40.057 に答える