2017-09-26 37 views
3

標題可能有點不清楚,所以我要解釋我的問題。在我的混合應用程序中,我使用<plugin spec="2.3.0" name="cordova-plugin-crosswalk-webview" source="npm" />(config.xml)能夠在舊系統上發佈我的應用程序。我還設置了定向使用該<plugin name="cordova-plugin-screen-orientation" source="npm" spec="2.0.0" />是橫向的,然後在index.html的刷新後,我的webview沒有設置正確的屏幕方向

function onLoad() { 
     document.addEventListener("deviceready", onDeviceReady, false); 
     screen.orientation.lock('landscape'); 
    } 

我還添加了對箭頭錄音了Android欄上

function onBackKeyDown() { 
    navigator.app.exitApp(); 
    } 

所以後關閉我的應用程序的功能一切工作正常。問題是,關閉我的應用程序後,它仍然在RAM中,你可以回到它,點擊Android欄上的右鍵。通常這不是問題,因爲應用程序應該重新開始。但在我的情況下,它忘記加載方向設置。我花了5個小時來找出原因。從我的應用程序中刪除人行橫道後,我找到了原因。我的手機上不需要人行橫道,因爲它具有android 7.1.1,但我需要它來發布我的應用程序。但人行橫道似乎是這個問題。從RAM中「支持」到應用程序後出現一些錯誤。所以我有兩個問題:在這種情況下,有什麼方法可以「提醒」我的Webview來加載這個方向嗎?我可以在兩個文件中發佈我的應用程序,用於新手機和舊手機(在商店中的一個位置下)?

回答

1

嘗試增加

<preference name="orientation" value="landscape" /> 

到config.xml文件。這應該鎖定方向到風景。

當本地平臺將應用程序從後臺拖出時,會觸發resume事件。你可以添加一個事件監聽器,然後重新運行你的代碼來鎖定方向。

您可以使用cordova-plugin-device插件檢測操作系統和操作系統版本。這將得到這兩個值。

var os = device.platform; // Get the OS 
var os_version = device.version; // Get the OS version 

然後,您可以根據操作系統版本運行不同的代碼。根據不同的應用程序將如何爲不同版本的每一個行動可能是值得一讀https://developer.android.com/google/play/publishing/multiple-apks.html

編輯:

您可以將下面的代碼添加到您的config.xml和這應該允許方向是橫向和反向景觀:

<preference name="orientation" value="landscape" /> 
<config-file platform="android" parent="/manifest/application" mode="merge"> 
    <activity android:screenOrientation="sensorLandscape" /> 
</config-file> 

你可以在這裏找到其他選項:https://developer.android.com/guide/topics/manifest/activity-element.html#screen

+0

好,但設置我的方向就像你說的旋轉屏幕olny左側(景觀主)和我會把它想後工作在兩個方向。有任何想法嗎? – wymyszony

+0

我已經更新了我的答案@wymyszony – Profit

+1

我不得不將這個(xmlns:android =「http://schemas.android.com/apk/res/android」)添加到我的,現在它可以工作。謝謝你,兄弟! – wymyszony