[英]Cordova problems with windows phone 8
我有兩個問題似乎無法找到在visual studio 2013中使用cordova時的工作解決方案。在config.xml中,我指定了方向應該是縱向模式,使用以下代碼:
<preference name="Orientation" value="portrait" />
當我在Android上運行應用程序時,它服從這個偏好就好了,應用程序不旋轉也不使用橫向模式。 然而,在Windows Phone 8上,它仍然會旋轉到橫向模式而忽略該設置。
另一個問題是我無法讓導航在Windows Phone 8下正常工作。我的javascript文件包含以下代碼:
(function () {
"use strict";
document.addEventListener('deviceready', onDeviceReady.bind(this), false);
function onDeviceReady() {
// Handle the Cordova pause and resume events
document.addEventListener('pause', onPause.bind(this), false);
document.addEventListener('resume', onResume.bind(this), false);
document.addEventListener("backbutton", onBackKeyDown, false);
};
function onPause() {
// TODO: This application has been suspended. Save application state here.
};
function onResume() {
// TODO: This application has been reactivated. Restore application state here.
};
function onBackKeyDown() {
history.go(-1);
navigator.app.backHistory();
};
})();
它再次在Android上完美運行,但是在Windows Phone 8上,后退按鈕事件似乎根本沒有被調用。 我放在函數中的任何東西似乎都沒有運行。 所以它似乎忽略了聽眾或不使用它。
有關如何使用cordova使Windows Phone 8正常工作的任何想法?
在方向問題上:看起來Cordova在創建Visual Studio項目時正在刪除config.xml方向設置。 在package.phone.appxmanifest文件(對於WP 8.1)中,您希望在<Application>部分中使用它:
<m3:InitialRotationPreference>
<m3:Rotation Preference="portrait" />
</m3:InitialRotationPreference>
並在package.windows80.appxmanifest中它將是這樣的:
<InitialRotationPreference>
<Rotation Preference="portrait" />
</InitialRotationPreference>
您也可以在初始化應用程序時以編程方式設置它,這就是我這樣做的方式,從那時起我不必去除/添加Windows平台時編輯appxmanifest。
Windows 8.1(Javascript):
if (typeof MSApp !== "undefined") {
Windows.Graphics.Display.DisplayInformation.autoRotationPreferences =
Windows.Graphics.Display.DisplayOrientations.portrait;
}
Windows Phone 8(C#):
Windows.Graphics.Display.DisplayProperties.AutoRotationPreferences =
Windows.Graphics.Display.DisplayOrientations.Portrait;
我找到了一種讓后退按鈕與cordova和wp8.1配合使用的方法。 這需要使用WinJS框架。
在ondeviceready函數中使用以下代碼:
if (device.platform == "windows") {
// Get the back button working in WP8.1
WinJS.Application.onbackclick = function () {
onBackKeyDown();
return true; // This line is important, without it the app closes.
}
}
else {
document.addEventListener("backbutton", onBackKeyDown, false);
}
然后創建一個onBackKeyDown函數來處理調用:
function onBackKeyDown() {
// Back key pressed, do something here
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.