2015-12-30 45 views
2

我正在开发一个使用Titanium Web视图,angularjs和移动角度UI的移动应用程序。 我已经创建了一个移动的角度ui站点,我在本地使用Titanium Web视图加载。Mobile angular ui fail

我的问题是,当我尝试在Web视图中加载本地站点时,我看到一个空白页面。要测试应用程序,我已经将该网站上传到了一个php服务器,并且如果我尝试使用移动浏览器(例如chrome)加载该网站,那么一切正常。

我发现,如果我不包括CSS移动角度-UI-base.min我可以在钛网观点看不是空白页

Plunker site example

这是我的应用程序在钛

var link = 'app/index.html'; 
var win = Ti.UI.createWindow(); 
var webview = Ti.UI.createWebView({ 
    url:link 
}); 
win.add(webview); 
win.open({ 
    modal : true 
}); 

.js文件创建一个新的钛项目,创建资源文件夹内的文件夹名为app和复制所有HTML,JS,CSS文件里面。

如果您执行移动应用程序,结果将是空白页。如果您从index.html中删除,您将看到登录页面。 最后,您尝试在android设备(例如chrome)中启动浏览器,并在远程服务器中加载相同的站点(不删除mobile-angular-ui-base.min.cs),您将看到正确的登录页面(如在plunker例子)

这是我的Android模拟器设置:

Name: Nexus_5_API_23_x86 
CPU/ABI: Google APIs Intel Atom (x86) 
Target: Google APIs (API level 23) 
Skin: 1080x1920 
SD Card: 200M 
hw.dPad: no 
hw.accelerometer: yes 
hw.device.name: Nexus 5 
vm.heapSize: 64 
skin.dynamic: no 
hw.device.manufacturer: Google 
hw.gps: yes 
hw.audioInput: yes 
tag.id: google_apis 
hw.camera.back: emulated 
hw.mainKeys: no 
hw.camera.front: emulated 
hw.lcd.density: 480 
hw.device.hash2: MD5:2fa0e16c8cceb7d385183284107c0c88 
hw.ramSize: 1536 
hw.trackBall: no 
hw.battery: yes 
hw.sdCard: yes 
tag.display: Google APIs 
hw.keyboard: yes 
hw.sensors.proximity: yes 
disk.dataPartition.size: 200M 
hw.sensors.orientation: yes 
avd.ini.encoding: UTF-8 
hw.gpu.enabled: yes 

请帮助。 Thanxs

回答

1

我认为问题是所有的<link><script>等资源都是相对于应用程序资源目录解析的。您应该可以通过Chrome(适用于Android)和Safari(适用于iOS)开发人员工具调试WebView,以调试确切原因。您可能需要改变一些路径才能使其工作。

+0

我认为路径是正确的,因为如果我尝试在logcat中将angular.min.js的路径更改为“app/js/libs/angular/angular.min.js”,我看到这个错误“Unable to打开资产URL:file:///android_asset/Resources/app/app/js/libs/angular/angular.min.js“,否则我没有收到任何错误 – Fabry

+0

好吧。您是否尝试开发工具进行调试? –

+0

我尝试使用AndroidStrudio,并且在这个IDE中出现错误。我不记得确切的错误描述,就像“无法加载signIn.html ....”。这个文件是由angularjs使用ajax下载的。我解决了这个错误(在Android Strudio中)为webView“setAllowFileAccessFromFileURLs(true)”设置了这个设置。奇怪的是,在我通过USB连接的物理设备(Galaxy TAB 2)中,Titanium应用程序工作正常。我发送.apk到另一个android手机,我遇到了与模拟器相同的问题 – Fabry