我正在努力将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
加载它,但视口保持白色,则大小会发生变化。
这可能是什么原因?我也非常感谢有关调试此问题或以某种方式隔离此问题的任何提示。
答案 0 :(得分:1)
可能的原因可能是WebView的布局本身。请检查WebView的布局高度。将其设置为MATCH_PARENT
应该可以胜任。
建议将WebView布局高度设置为固定值或 到MATCH_PARENT,而不是使用WRAP_CONTENT。
请参阅此处的布局尺寸部分: http://developer.android.com/reference/android/webkit/WebView.html