我们一直在努力让我们的PhoneGap 2.9,Durandal 2.0应用程序在Windows Phone 8上运行。我们已经能够按照步骤通过visual studio将应用程序部署到模拟器和设备。但是,当应用程序在VS中构建时,我们遇到问题,然后使用应用程序部署工具将完成的.xap部署到设备。启动屏幕加载但显示黑屏。
我们已根据此博客帖子http://mikaelkoskinen.net/durandal-phonegap-windows-phone-8-tutorial/中的建议更正了www的路径,该应用程序使应用程序在模拟器上运行,但未在设备上运行。
我们还尝试使用phonegap构建xap,因为它现在支持测试版的Windows Phone 8 - http://phonegap.com/blog/2013/10/18/2013-10-18-phonegap-build-support-for-windows-phone-8/。这已经返回了类似的结果。
我们认为main.js和index.html文件正在正常加载,但问题在某种程度上与requirejs和durandal 2。
是否有其他人成功使用这种工具组合(或更新版本),如果是,他们知道我们哪里出错了。
答案 0 :(得分:7)
我们设法解决了这个问题,因此对于可能遇到此问题的其他人来说,以下信息可能会有用。
1)更改File.cs文件,详见博文:http://mikaelkoskinen.net/durandal-phonegap-windows-phone-8-tutorial/
2)除了上述更改之外,我们发现还必须将从参数读取的选项修改为File.cs中的readResourceAsText方法,如下所示,因为PhoneGap不需要其他选项,并且似乎没有不通过它们:
string[] optStrings = getOptionStrings(options);
string pathToResource = optStrings[0];
//string encStr = optStrings[1];
//int start = int.Parse(optStrings[2]);
//int endMarker = int.Parse(optStrings[3]);
string callbackId = optStrings[1];
3)由于某种原因,Windows Phone,PhoneGap和Durandal的组合对应用程序的文件夹结构也非常挑剔。最初我们试图使用我们自己的文件夹结构,这对我们来说很有意义。 (即。不使用Durandal入门套件示例中使用的'app'子文件夹,并在www根目录中有main.js,viewmodels和views文件夹。)正如问题所述,这不是问题任何其他平台,或者在调试模式下,因此我们不确定底层问题是什么,但文件夹结构应该与Durandal入门套件中的文件完全匹配,以便Windows Phone在发布模式下工作。
有关其他信息,我们现在也在PhoneGap 3.1中使用了此功能。 (适用与上述相同的修改,包括修改File.cs插件。)
我们还尝试了PhoneGap build,它现在支持PhoneGap 3.0,但是应用程序崩溃了。这是因为构建不使用File.cs所需的修改。在修复此问题之前,不可能将PhoneGap版本与Windows Phone 8的Durandal应用程序一起使用。