我对钛比较陌生。我在 webview 中加载我的本地 html/xml。在 iOS 中,所有内容都是自动处理的(显示内容),但是当我在 webview 中的 android 内容中检查此内容时,会有额外的空格,内容也会显示为跳跃和弹跳,这是不可接受的。我正在使用合金结构。当我在本地文件中静态添加元标记(视口)时,空白就消失了。但是我需要动态加载本地文件,所以我不能编辑我的本地文件。因此,编辑这些文件我会像这样覆盖 webview 的加载方法:-
$.webview.addEventListener('load', function(e) { $.webview.evalJS("var m=document.createElement(\"meta\");m.name = \"viewport\";m.content = \"width=" + scrwidth + ", user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1\";document.getElementsByTagName(\"head\")[0].appendChild(m);"); });
但它不影响webview的html。为了确认这一点,我在 evalJS 之后编写了一个文件,因此我可以确定 evalJS 正在影响。
var jsString = 'var s=document.createElement("script");' + 's.innerHTML="' + 'sdfsdfsdfsd' + '";' + 'document.getElementsByTagName("head")[0].appendChild(s);'; $.webview.evalJS(jsString);
var resFile = Ti.Filesystem.getFile(Ti.Filesystem.applicationDataDirectory, "response.html"); resFile.write($.webview.html);
现在,当我在应用程序数据目录中检查此文件时,我可以看到 iOS 的这种效果(它只显示我本地 html 的内容),但对于 android,我看不到我添加的脚本。当我检查响应文件时,它以 javascrit 开头,我无法理解它的来源(我认为它来自本机 webview 的 html),并且在其脚本结束后,我看到了我的 html,但没有看到我在加载中手动添加的脚本。我读到了这个问题,但都给出了视口元标记解决方案,但就我而言,无论我多么努力,我都无法适应内容。那么你们能告诉我我哪里出错了吗?是否有任何特殊权限可以在 android 中编辑 webview 的 html(因为它没有编辑)。
应用程序类型:- 移动 Titanium SDK:- 3.0.2 平台和版本:- Android 2.2 设备:- htc Nexus/ mototrola zoom 主机操作系统:- Mac OS 10.8.2 Titanium Studio:- 3.0
谢谢。