问题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无法打开
有什么想法吗?
答案 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中反序列化来将字典作为参数传递!