我想添加webview,其高度与内容一样。我在Android上顺利运行,但在iOS上文本越长,文本下方的空间越长。
这是我的代码:
var window = Ti.UI.createWindow();
var scrollView = Ti.UI.createScrollView({
layout: 'vertical',
height: Ti.UI.SIZE
});
var view1 = Ti.UI.createView({
height: 200,
backgroundColor: 'red'
});
var webview = Ti.UI.createWebView({
height: Ti.UI.SIZE,
html: '<html><head><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2"></head><body style="margin:0; background-color: blue">Some page some text2</body></html>'
});
var view2 = Ti.UI.createView({
height: 200,
backgroundColor: 'green'
});
scrollView.add(view1);
scrollView.add(webview);
scrollView.add(view2);
window.add(scrollView);
window.open();
提前致谢。
答案 0 :(得分:2)
webview不知道内容的大小。但是你可以在webview上询问内容的高度。
为此,您需要使用evalJS。
使用StackOverflow上的JS:
SELECT O.*
FROM Outlet O
LEFT JOIN Transaksi T ON T.Outlet = O.OutletCode
WHERE T.Days IS NULL
并且最好把它放在webview中的一个函数中。可以说上面的Javascript在函数var body = document.body,
html = document.documentElement;
var height = Math.max( body.scrollHeight, body.offsetHeight,
html.clientHeight, html.scrollHeight, html.offsetHeight );
中,该函数返回getDocumentHeight
属性。现在,要获得高度使用eval,如下所示:
height
现在,您希望每次加载内容时执行此操作(假设内容发生更改),因此在这种情况下您可以观看var height = webview.evalJS('getDocumentHeight()');
webview.height = height;
事件(doc here)并触发{{1}每次触发此事件时都会在上面。
它不会很漂亮,因为webview不是这样扩展的,但是它有效。
答案 1 :(得分:0)
对于iOS来说,这似乎是一个错误/沮丧的方法。没有直接的解决方法。可以在这里查看: Jira Ticket about problem with iOS 9, Jira Ticket about problem with webView + ScrollView