0

デバイスよりも小さいWebビューに外部Webページを読み込もうとしています。これは例です:

var window = Titanium.UI.createWindow();

var webview = Titanium.UI.createWebView();

webview.setWidth(320)
webview.setUrl('http://www.bostonglobe.com')

Ti.API.info('webview width = ' + webview.width);


window.add(webview);
window.open(); 

Webビューが水平方向にスクロールし、指定された320ではなく、デバイスと同じ幅のように動作することがわかります。

この作業を行うための助けをいただければ幸いです。

4

3 に答える 3

2

これは実際には非常に簡単に実行でき、すべてのプラットフォームで Titanium に組み込まれています。WebViewのプロパティを使用するだけscalesPageToFitです。これは Titanium バージョン 0.8 から存在しているため、非常に安定しています。

var self = Ti.UI.createView({
    backgroundColor : '#ff0000'
});

var webView = Ti.UI.createWebView({
    url : 'http://whatsmy.browsersize.com',
    scalesPageToFit : true,
    width : 280
});

self.add(webView);

ただし、プラットフォームの違いに注意してください。

「iOS では、これを true に設定すると、初期ズーム レベルがページ全体を表示するように設定され、ユーザーが Web ビューをズームインおよびズームアウトできるようになります。これを false に設定すると、ユーザーは Web ビューをズームできなくなります。」

「Android では、初期ズーム レベルのみを制御します。」

また、すべての画面のピクセル密度が異なるため、ピクセルとポイントの違いにも注意してください。これが機能することを示すスクリーンショットです。周囲の赤い背景に注意してください。 これは機能します

このスクリーンショットは、Titanium Studio の「デフォルト ウィンドウ」テンプレートを使用したバニラ プロジェクトから取得したものです。私がしたことは、「ui/common/FirstView.js」ファイルをこの要点に置き換えることだけでした。

WebView を非常に小さくすると、コンテンツが表示されない可能性があります (多くの Web サイトで最小ズーム スケールが指定されているため)。その場合は、次のような変換を使用することをお勧めします。

var webView = Ti.UI.createWebView({
    url : 'http://whatsmy.browsersize.com',
    scalesPageToFit : true,
    width : 280,
    transform : Ti.UI.create2DMatrix().scale(0.5, 0.5)
});

これでできることは、前のビューを取得して半分のサイズにするだけです。もちろん、独自の均一な倍率を計算する必要がありますが、要件とプラットフォームのターゲットによっては簡単なはずです。これは、スケーリングされた結果のスクリーンショットです。

これも効く

これらの方法を組み合わせて使用​​することで、この問題を解決するために必要なツールを確実に手に入れることができます。幸運を!

于 2012-10-16T02:46:33.577 に答える
1

考慮すべきもう 1 つのポイントは、読み込んでいるページがおそらくモバイル フレンドリーではないということです。Apple の Web ビュー コントロールは、収まるようにスケーリングされた速度で表示することを決定しています。whatsmy.browsersize.com の場合、Web ビューのコントロール サイズではなく、Web ページのスケーリングされたサイズを示しています。

ほとんどの場合、Web ページのビューポートの幅と初期スケールを変更する必要があります。

<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=3.0;" />

編集: サードパーティのサイトの場合、ページが読み込まれた後、JavaScript を介して強制的にスケーリングできます。縮小されていない最初のページを表示したくない場合は、縮小されるまで Web ビューを非表示にします。

webView.evalJS('document.body.style.zoom = 1.5;');
于 2012-10-20T04:00:33.873 に答える
1

代わりにこの方法を試して、より良い結果が得られるかどうかを確認してください。

var webview = Titanium.UI.createWebView({
    width:320,
    url:'http://bostonglobe.com'
});
于 2012-10-04T18:32:03.503 に答える