科尔多瓦。在onCreate函数

时间:2015-07-31 13:28:48

标签: cordova webview zoom scaling

我正在构建Cordova混合应用程序,并在onCreate执行期间缩放webView。一切正常但在我将注意力集中在文本输入之后,缩放比例正在被浪费。尝试增加字体大小得到相同的结果。 接下来我认为可以通过缩放原生Java代码来重复技巧,因此我创建了在键盘隐藏事件后调用的JavaScript接口(使用离子键盘插件)。但是,在onCreate完成后,我无法获取webView并调用大部分方法,并初始化应用程序,好像我没有正确的webView指针。

在我的MainActivity.java代码中看起来像这样。

public class MainActivity extends CordovaActivity
{
    protected WebView wV;
    protected float ORIG_APP_W = 1080;

    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        loadUrl(launchUrl);
        wV = (WebView)this.appView.getEngine().getView();
        ...
        double globalScale = Math.ceil( ( width / ORIG_APP_W ) * 100 );
        wV.setInitialScale( (int)globalScale );
        wV.addJavascriptInterface(new MainActivity.Bridge(), "bridge");
    }

    class Bridge  extends CordovaPlugin {

        @JavascriptInterface
        public String refreshScaling()
        { 
            double globalScale = Math.ceil( ( width / ORIG_APP_W ) * 100);
            wV.setInitialScale( (int)globalScale );

            return "success";
        }
    }

在JS中

window.addEventListener('native.keyboardhide', onKeyboardHide);
...
    function onKeyboardHide(e){
     window.bridge.refreshScaling();
}

0 个答案:

没有答案