SL4A-Python:webViewShow显示简单的HTML页面,在脚本终止后不会消失

时间:2014-05-15 16:50:37

标签: android python webview sl4a

我似乎没有找到任何相关的答案,SL4A版本是R6,Py4A是R5。它非常简单,应用程序使用HTML页面调用webViewShow,它正确显示,脚本终止,但页面不想消失。无法到达菜单,后退按钮不起作用,只有主页按钮,那么如果脚本通过adb运行,​​则需要从应用管理器中删除sl4a,或者如果从设备上解释器运行则需要终止脚本。我也试过http://www.google.com,同样的事情发生了。 webViewShow返回NoneType,但仍显示页面。

示例:

    import android
    droid = android.Android() 
    droid.webViewShow('/sdcard/sl4a/scripts/main_view.html'

HTML:

    <html>
      <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <meta name="viewport" id="viewport"
            content="width=device-width, target-densitydpi=device-dpi,
            initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"
            />
      </head>
      <body >
        <h1 style="text-align:center">Supervisor</h1>

      </body>
    </html>

提前致谢!

3 个答案:

答案 0 :(得分:0)

也许这可能会有所帮助:

<script>
    var droid = new Android();
</script>

<input type="button" value="Exit" onclick="droid.dismiss();" />

答案 1 :(得分:0)

我也遇到了这个问题,但找不到合适的答案。在我的情况下,我怀疑剧本不能完全终止&#39;直到WebView关闭... catch-22。为了解决这个问题,我添加了一个明确的退出&#39;在生成WebView之前选择手机的菜单按钮:

# give us a way to escape from the webview
droid.addOptionsMenuItem('Quit','menu-quit',None,"ic_lock_power_off")

不理想(用户仍然需要寻找Quit选项或提前了解它),但似乎可以解决脚本和WebView,至少在我的手机上(SL4A r6,Android 2.3.7)

答案 2 :(得分:0)

我同意佩德罗。这是从sl4a退出webview的唯一方法,由damon kolher确认,该项目是该项目的最后一位维护者,最终分叉之前。

一旦你部署了一个webview,除了使用js之外,没有办法杀死它。

<script> var droid = new Android(); </script>

然后将其附加到元素。

onclick="droid.eventPost('kill', ''); droid.dismiss();

对我来说,我通过eventWait使用eventPost回调到我的主脚本。

while True:
    event = droid.eventWait().result
    if event['name'] == 'kill':
        pipe.send('kill')
        pipe.close()

我觉得这个工作非常好,因为我使用瓶子来提供我的webview作为两个单独的进程,并且需要一种方法在webview退出后立即关闭我的脚本。