2013-03-06 43 views
0

我对钛是比较新的。我在webview中加载我的本地html/xml。在iOS中,一切都是自动处理的(显示内容),但是当我在webview中的android内容中检查此内容时,还会显示带有跳跃和跳动的内容,这是永远不可接受的。我正在使用合金结构。 当我静态添加元标记(视口)在我的本地文件,然后空白空间不见了。但我需要动态加载本地文件,所以我不能编辑我的本地文件。 所以编辑这些文件我重写这样的WebView的加载方法: -Appcelerator钛(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(因为它不编辑)。

应用类型: - 移动钛SDK: - 3.0.2平台&版本: - Android 2.2的设备: - HTC的Nexus/mototrola变焦主机操作系统: - 的Mac OS 10.8.2钛工作室 - 3.0

谢谢。

回答

0

谢谢您的回答,但正如我已经说过,只要我试图找到这个问题的答案我发现了同样的答案,正如你所提到(所以肯定你的答案是正确的),但我上面提到,我不能手动添加这一行,因为我没有控制这些文件,所以这不会对我工作了。

我还表明,我是如何动态添加上面的元标记,但也没有工作。

所以,现在我所做的是我把其中的HTML保存,然后用<meta name="viewport" content="width=device-width,user-scalable=yes,initial-scale=1"></head>取代</head> 标记文件句柄,然后将该文件保存到自己的位置。现在,当文件成功写入,然后使用webview.url = file.nativepath访问它。 :)现在一切工作正常。

可能这对于像我这样尝试相同的人很有用。这里进程会很慢,因为我正在访问文件编辑文件,然后再次访问这个文件,但这至少是工作。如果有人有更准确或合理的答案,他们可以在这里回答谢谢。

3

您需要针对移动设备的视meta标签:

<meta name="viewport" content="width=device-width,user-scalable=yes,initial-scale=1">

+0

非常感谢!我也在寻找解决方案。如果我能给你20个upvotes,我会:-) – 2013-04-04 03:01:02