2016-07-02 29 views
1

Android用Cordovaプラグインを作成します。ここでCordova Androidでwebviewの幅と高さを取得する方法は?

FrameLayout.LayoutParams.MATCH_PARENTをログインしたとき、それは-1が表示されることを

public class MyPlugin extends CordovaPlugin { 

    CordovaWebView _webView; 
    ViewGroup _root; 

    public void initialize(CordovaInterface cordova, final CordovaWebView webView) { 
    super.initialize(cordova, webView); 

    _webView = webView; 
    _root = (ViewGroup) _webView.getView().getParent(); 

    Log.d(TAG, Integer.toString(root.getLayoutParams().width)); // -1 
    Log.d(TAG, Integer.toString(webView.getView().getLayoutParams().width)); //-1 too 
    } 

    public boolean execute(final String action, final CordovaArgs args, final CallbackContext _callbackContext) throws JSONException { 
    Log.d(TAG, Integer.toString(_root.getLayoutParams().width)); // -1 
    Log.d(TAG, Integer.toString(_webView.getView().getLayoutParams().width)); // -1 
    ... 
    } 
} 

注ミューproblemeを再開し、簡単な初期化関数です。 デフォルトのWebViewレイアウトがCordovaのMATCH_PARENTで設定されていますか?

どのようにWebViewまたはWebViewの親を/ heighで取得できましたか?

答えて

0

ページのレンダリングが完了したら、WebViewクライアントのonPageFinishedメソッドでそのイベントを取得できます。あなたは、コンテンツの高さと、Webページの幅を取得するため

webview.getContentWidth() と webview.getContentHeight()

を使用することができる方法で 。

注: - このアプローチはアンドロイドストックウェブビュー向けです。それを望むなら、コードワーウェブビューでも動作します。

+0

Thxを、しかしCordovaWebViewにonPageFinishedそのような方法は存在しません。 – dagatsoin

+0

webview.setWebviewClient();を使用して、コードワWebviewのwebviewクライアントを設定できますか。 – Karacken

0

私は間違った方法を使用していました。 getLayoutParams()は実際の寸法を与えません。

の両方initializeexecute機能マイコード作業:

Log.d(TAG, Integer.toString(_webView.getView().getWidth())); 
Log.d(TAG, Integer.toString(_webView.getView().getHeight())); 
関連する問題