Android + Python + webView有些问题

时间:2012-12-15 16:02:06

标签: android python webview

问题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:

当我使用“Android Java IDE(AIDE)”将script.py导入APK时,安装并打开,WebView无法打开

python代码是执行但WebView无法打开

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

你可以做一个简单的黑客攻击。 Webkit WebView具有“加载完成”事件,可在页面加载后触发,之后您可以执行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中反序列化来将字典作为参数传递!