【问题标题】:Mobile angular ui fail移动角度用户界面失败
【发布时间】:2015-12-30 19:05:47
【问题描述】:

我正在使用 Titanium web view、angularjs 和移动 angular ui 开发移动应用程序。 我创建了一个移动 angular ui 网站,我使用 Titanium 网络视图在本地加载。

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

我注意到,如果我不包含 css mobile-angular-ui-base.min,我会在 Titanium 网络视图中看到一个非空白页面

Plunker site example

这是我在钛合金中的 app.js

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

创建一个新的钛项目,在 Resource 文件夹中创建一个名为 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

请帮忙。 谢谢

【问题讨论】:

    标签: android angularjs titanium appcelerator mobile-angular-ui


    【解决方案1】:

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

    【讨论】:

    • 我认为路径是正确的,因为如果我尝试在 logcat 中将 angular.min.js 的路径更改为“app/js/libs/angular/angular.min.js”,我会看到此错误“无法打开资产 URL:file:///android_asset/Resources/app/app/js/libs/angular/angular.min.js”,否则我没有收到任何错误
    • 我尝试使用 AndroidStrudio,但使用此 IDE 时出现错误。我不记得确切的错误描述,就像“无法加载 signIn.html ....”。该文件由 angularjs 使用 ajax 下载。我解决了这个错误(在Android Strudio中)为webView“setAllowFileAccessFromFileURLs(true)”设置这个设置。奇怪的是,在我通过 USB(Galaxy TAB 2)连接的物理设备中,Titanium 应用程序运行良好。我将 .apk 发送到另一部 Android 手机,我遇到了与模拟器中相同的问题
    • 请问您为什么使用 AndroidStudio 来构建 Titanium 应用程序?从该错误描述来看,您必须使用该文件的路径。正如我所说,这可能是因为它假设了错误的基础。
    • 抱歉,您可能误会了。为了构建钛应用程序,我正在使用 Appcelerator。我尝试在 Android Studio 中创建一个具有相同概念的新应用(带有本地 Web 应用的 Web 视图)。在 Android Studio 中,该应用程序正常工作(我没有更改任何路径,只需将 setAllowAccessFromFileUrl 设置为 true。)
    • 啊,好的。好吧,这将成为 JIRA 票证的一个很好的案例。如果您可以包含一个在 android studio 中制作的小型示例应用程序和一个用钛制作的具有相同 HTML 的示例应用程序,工程师可以复制并尝试修复。
    猜你喜欢
    • 1970-01-01
    • 2016-10-31
    • 2010-11-12
    • 2012-10-19
    • 1970-01-01
    • 1970-01-01
    • 2017-02-04
    • 2016-12-25
    • 1970-01-01
    相关资源
    最近更新 更多