Android WebView中的Sencha Touch 2白色屏幕
我正在将一个JavaScript应用程序从Sencha Touch 1.x迁移到Sencha Touch 2.x。它被指定在原生Android应用程序内的网络视图中运行。该应用程序在SenchaTouch1.x上运行。同时,为了让它在SenchaTouch2.x上运行,进行了大量的重构和调试。目前使用的Sencha Touch版本为2.4.2 我在桌面版Firefox上做了一些测试。这基本上是可行的,但测试是有限的,因为Sencha Touch应用程序高度依赖于本机Android应用程序通过JS接口提供的多个对象和方法 现在,当在Android WebView中运行它时,我面临一个奇怪的问题:启动和渲染后,我看到的只是一个白色屏幕,而所有MVC依赖项都被加载,并且Android WebView中的Sencha Touch 2白色屏幕,android,webview,sencha-touch,android-webview,sencha-touch-2,Android,Webview,Sencha Touch,Android Webview,Sencha Touch 2,我正在将一个JavaScript应用程序从Sencha Touch 1.x迁移到Sencha Touch 2.x。它被指定在原生Android应用程序内的网络视图中运行。该应用程序在SenchaTouch1.x上运行。同时,为了让它在SenchaTouch2.x上运行,进行了大量的重构和调试。目前使用的Sencha Touch版本为2.4.2 我在桌面版Firefox上做了一些测试。这基本上是可行的,但测试是有限的,因为Sencha Touch应用程序高度依赖于本机Android应用程序通过JS
Ext.application
中的launch()
被正确触发。控制台中根本没有JavaScript错误,并且所有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.startSite
视图)的定义非常传统:
Ext.define('MyApp.view.Startseite', {
extend: 'Ext.Panel',
config: {
id: 'Startseite',
layout: 'card',
items: [
/* ... */
]
},
/* ... */
});
有趣的是:Sencha Touch确实会生成大量HTML内容,这取决于我通过Ext.Viewport.add()
加载的视图,我可以从我记录的innerHTML.length
中推断出来。但网络视图中没有显示任何内容。如果我创建一个不同的视图并通过Ext.Viewport.add()
加载它,则大小会随之改变,但视口保持白色
这可能是什么原因?我也非常感谢关于调试此问题或以某种方式隔离此问题的任何提示。原因可能是WebView的布局本身。请检查WebView的布局高度。将其设置为
MATCH\u PARENT
应该可以完成此任务
建议将WebView布局高度设置为固定值或
匹配父项而不是使用换行内容
请参见此处的布局尺寸部分:
非常感谢,它很有魅力!(我已将
标记中的android:layou-height
参数设置为匹配\u-parent
)