2016-02-23 59 views
0

有趣的事情。想象一下,你有一個div了一個名爲night-mode類和這個CSS四處漫遊:-webkit-filter將無法在Android Cordova應用中正常工作

.night-mode.night-mode-enabled { 
    -webkit-filter: invert(1) hue-rotate(180deg) saturate(80%); 
} 

打你的應用程序打開這個真的很便宜夜間模式一個按鈕,但撥動類night-mode-enabled這些重要div小號。

準備,編譯,在iOS中運行,它按預期工作。 一切裏面的div進行一個較暗的模式,保持相同的顏色,但不飽和他們一點點。

在Android中運行,雖然...除了被額外慢(我不會認爲注3是一個特別慢的手機),它並沒有真正做任何事情該div。於是,我開始有了這樣的花哨之外的其他規則組合雜耍:

.night-mode.night-mode-enabled, 
.night-mode.night-mode-enabled>div *, 
.night-mode.night-mode-enabled * { 
    -webkit-filter: invert(1) hue-rotate(180deg) saturate(80%); 
} 

這幹得不錯幾乎。幾乎我的意思是,它能夠反轉所有物品,但在某些情況下(我的賭注是「,在偶數的上升直到.night-mode.night-mode-enabled)不適用。

難道它與我的科爾多瓦Android相當老(3.7.1)和iOS的一個更新一點(3.8.0)有關嗎?

注意:在任何人告訴我因爲新的Play商店需求需要升級cordova之前,我不得不承認這是我下一個月的事情,但這對於下面的事情來說太耗費時間了發佈,所以如果過濾器是可以通過cordova升級修復的,那很好,但是如果可以避免的話,它會好得多。

+0

一個原因可能是您的設備正在使用中的WebKit版本。該版本取決於Android版本和設備的製作者。在過去,我有一個三星設備similiair麻煩,他們使用另一個版本,而不是相應的android版本。 – Joerg

+0

@Joerg會澄清很多。儘管電話是棒棒糖,是的,這可能是事情。我會用聯想嘗試一下,然後告訴你 – Korcholis

+0

不幸的是,結果相同,@Joerg。這可能是一個巨大的巧合,但儘管聯想處於_filter constraints_(使用前綴+4.4)似乎不起作用。 – Korcholis

回答

0

我沒有爲您的過濾器問題的解決方案,但是當我有類似的問題時,我在體內注入了一些類來具有CSS選擇器。我所使用的設備插件,並創造了這個代碼獲取的是Android 4.4(只是將其更改爲你的需求):

function onDeviceReady() { 
    if (device.platform === "Android") { 
     var tmp = device.version.split("."); 
     if (parseFloat(tmp[0] + "." + tmp[1]) === 4.4){ 
     $("body").addClass("API18"); 
     } 
    } 
} 

如果你需要更深的裝置型號檢測,只需注入從插件設備模型。

如果需要通過名稱來檢測iOS的模型,您可以使用此列表:https://www.theiphonewiki.com/wiki/Models對於Android的,你可以在這裏找到一些車型http://download.cyanogenmod.org

相關問題