2017-08-10 126 views
-4

在互聯網上有很多這篇文章,但它們都給出了一個模糊的答案,沒有建立每種方法的優點和缺點。什麼是使網站手機兼容的最佳方式

如果用戶確實在使用移動/表格,那麼哪些方法可以保持最佳效率和準確性。我見過的許多方法都需要檢查用戶的屏幕大小,這看起來沒問題,但它可能無法100%的工作。

+0

bootstrap(CSS),modernizer(js)等是使網站移動友好的完美庫。 –

+0

[如何使我的網站移動設備和平板電腦兼容?](https://stackoverflow.com/questions/14566848/how-to-make-my-website-mobile-and-tablet-compatible) – Kondal

+0

@Kondal沒有它不是重複的,這篇文章主要關注每種方法的優點和缺點,你提到的帖子關注的是「如何」而不是「爲什麼」一個比另一個更好。 –

回答

0

這確實是一個模糊的問題,因此答案也是模糊的。

至於實際可用的技術,大多數手機瀏覽器完全有能力並符合當前的Web標準和技術(例如HTML5,CSS3,JS等)。但是有一些不被支持,例如閃。爲了使移動站點兼容,您需要確保您使用的技術/語言等在現在通常都是可用的!

至於響應式設計(這是我的感覺是你的問題的癥結所在),還有一些圖書館和資源,這將有助於使你的網站的移動友好。例如,bootstrapmaterialize。他們通過分析大多數情況下的屏幕大小和視口大小來工作。您有時可以嘗試使用代理信息來分析用戶設備,但這不是非常可靠。特別是在可能無法報告用戶代理的平板電腦上。用戶代理有時也可能被欺騙。

經常使用屏幕大小的原因是什麼問題。沒有移動視圖的小屏幕尺寸經常要求用戶滾動頁面以查看導致難以導航的信息。因爲這通常適用於手機,所以這很好,但它也適用於發達國家的小屏幕用戶或使用放大功能或較低分辨率的視力不佳的用戶。然而屏幕尺寸有一些問題。你在哪裏設定手機限制?您如何解釋不同的屏幕密度以及它對網站查看方式的影響。

許多響應式設計庫將包含一些自我調整的屏幕大小的方式,但也有JavaScript工具,可以幫助你。

我給你的建議是看看像bootstrap這樣的設計庫,你會發現它很容易和有效。您也可能想要考慮不同的選項,哪些對您的用戶更重要,或者您是否想要將它們組合起來!祝你好運!

-2

不知道OP或未來訪問此答案的人是否瞭解適應性設計,以及是否採取正確的方法。我試圖讓它保持在中間。

什麼是分析用戶是否確實使用移動/表的最佳效率和準確性的方法是什麼?

網站detectmobilebrowsers.com多年來一直使用,至少由我和其他人使用。

的事情是,你正在尋找設備檢測=>navigator.userAgent

因此,即使在其他的服務器語言你還是問客戶的用戶代理字符串。因此,我認爲這是最好的客戶端。

基於detectmobilebrowsers JS構建,我在我的項目中包含一個函數來檢測這個。

var cfg = { 
    patterns: { 
     mobile: new RegExp(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm(os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i), 
     mobile2: new RegExp(/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s)|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp(i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac(|\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt(|\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg(g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v)|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v)|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-|)|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/), 
     tablet: new RegExp(/android|ipad|playbook|silk/i) 
    } 
}; 

/** 
* @description Device detection 
* http://detectmobilebrowsers.com 
* @param {String} dvc : user agent string 
* @return {String} mobile | tablet | desktop 
*/ 
deviceDetection: (function (dvc) { 
    var cfgPatterns = cfg.patterns, 
     cfgDevice = cfg.devices; 

    return cfgPatterns.mobile.test(dvc) || cfgPatterns.mobile2.test(dvc.substr(0, 4)) ? cfgDevice.mobile : cfgPatterns.tablet.test(dvc) ? cfgDevice.tablet : cfgDevice.desktop; 
}(navigator.userAgent || navigator.vendor || window.opera)), 

如果你把輸出對身體$(document.body).addClass(deviceDetection)你現在可以區分在CSS。工程就像一個魅力\ O/


FYI:屏幕尺寸是,如果你在設備檢測的角度去想它永遠面向未來。這個解決方案也不是! =>視網膜屏幕和智能電視是一個很好的例子。

+0

我敢肯定,這將報告我的辦公室(它有一個遙控器,沒有觸摸屏)40「4K分辨率的電視作爲」一個平板電腦「 – Quentin

+0

我敢肯定,這個測試是專爲移動瀏覽器。對於平板電腦,他們有一個關於我在平板電腦上找到正則表達式的部分,並將其添加到我的代碼中。這是正確的,這可能仍然會帶來誤報。我有權正確回答客戶的想法側面檢測=>最好的方法 –

+0

但是屏幕尺寸也是客戶端,而昆汀所做的一點是,用戶代理雖然通常很好,但也不是未來的證明,例如android電視可能觸發這些。不包括有人可能需要移動網站但不在移動設備上的情況,例如那些有特殊訪問要求的移動設備。總體上,問題是要求一點點的比較和推理,你可能會宣稱自己是「正確答案」。 – JCooke

相關問題