Android WebView中的Sencha Touch 2白屏

时间:2016-01-11 09:42:29

标签: android webview sencha-touch android-webview sencha-touch-2

我正在努力将JavaScript应用程序从Sencha Touch 1.x迁移到Sencha Touch 2.x.它被指定在本机Android应用程序内的WebView中运行。该应用程序适用于Sencha Touch 1.x.同时,有很多重构和调试使它在Sencha Touch 2.x上运行。目前使用的Sencha Touch版本是2.4.2。

我在桌面版Firefox中做了一些测试。它基本上已经解决了,但测试是有限的,因为Sencha Touch应用程序高度依赖于本机Android应用程序通过JS接口提供的几个对象和方法。

现在,当谈到在Android WebView中运行它时,我面临一个奇怪的问题:在启动和渲染之后我只能看到白屏,而所有MVC依赖都被加载了{{1 launch()中的{}被正确触发。控制台中根本没有JavaScript错误,并且所有Ext.application类/对象/方法都可用。

这是Ext块的基本设置:

Ext.application

视图(例如Ext.application({ name: 'MyApp', models: [ 'TestModel', 'UserModel', 'HauptmenueModel', /* ... */ ], controllers: [ 'MyController' ], views: [ 'Benutzer', 'Startseite', /* ... */ ], stores: [ 'TestStore', 'UserStore', 'HauptmenueStore', /* ... */ ], launch: function () { Ext.Viewport.add(Ext.create('MyApp.view.Startseite')); console.log(document.body.innerHTML.length); } }); 视图)的定义非常传统:

MyApp.view.Startseite

有趣的是:Sencha Touch确实会生成大量HTML内容,具体取决于我通过Ext.define('MyApp.view.Startseite', { extend: 'Ext.Panel', config: { id: 'Startseite', layout: 'card', items: [ /* ... */ ] }, /* ... */ }); 加载的视图,我可以从我正在记录的Ext.Viewport.add()中推断出来。但是WebView中没有任何内容。如果我创建一个不同的视图并通过innerHTML.length加载它,但视口保持白色,则大小会发生变化。

这可能是什么原因?我也非常感谢有关调试此问题或以某种方式隔离此问题的任何提示。

1 个答案:

答案 0 :(得分:1)

可能的原因可能是WebView的布局本身。请检查WebView的布局高度。将其设置为MATCH_PARENT应该可以胜任。

  

建议将WebView布局高度设置为固定值或   到MATCH_PARENT,而不是使用WRAP_CONTENT。

请参阅此处的布局尺寸部分: http://developer.android.com/reference/android/webkit/WebView.html