chrome、safari、firefox、samsung browserhtml
不一樣平臺實現不同java
微信iOS端是採用wkwebkit進行渲染的,Android平臺採用的是x5內核android
因爲移動端網頁開發不能直接打開developer tools,致使咱們調試起來稍微麻煩。好在咱們有解決方案:
Remote Devices
谷歌爲咱們提供的開發利器,讓咱們能夠在電腦端使用developer tools進行elements檢查和network監測,很是方便快捷。
使用方式:ios
app容器須要進行以下設置,chrome、samsung瀏覽器不用,默認就能打開es6
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { WebView.setWebContentsDebuggingEnabled(true); }
手機打開usb調試web
手機和電腦經過數據線鏈接,經過命令行執行,顯示如圖以後,表示成功鏈接chrome
adb devices
而後從chrome瀏覽器F12找到Remote devicesnpm
inspect你想要監聽的頁面,以下api
使用Safari自帶的開發者工具瀏覽器
若是是app容器,使用webview加載頁面,那麼app容器須要是開發包,apple store上的正式包是不行的。
經過網絡代理進行設備網絡請求的監聽,注意https須要設置證書,而且就算設置了證書,tls1.2以上的post請求也沒法監聽,只能監聽tls1.2如下的,還有就是如今不少app基於https的,當它判斷你的證書自定義的時候,會拋出異常沒法進行api請求,請自行判斷。
代理主機名爲你的筆記本在局域網下的ip地址,端口號在charles軟件中proxy->proxy settings中設置
代理設置好後Android設備可能須要關閉wifi再從新打開wifi代理才能生效,而且第一次代理charles軟件須要點擊allow。
https證書安裝:Help -> SSL Proxying -> Install Charles Root Certification on a Mobile Device or a Remote Revice,它會指導你用手機下載一個charles自定義的https證書而後安裝。
因爲某些app並無打開remote debug,而咱們又要內嵌本身的頁面進行調試,抓包只能檢測網絡請求。因此這個工具就有了使用場景。它可以檢測elements並查看js輸出信息。
使用方法:
經過npm安裝weinre
npm -g install weinre weinre --boundHost 192.168.1.194 --httpPort 9090
在你要調試的頁面中插入js腳本,anonymous是appid,你能夠自定義
<script src="http://m.kuaijiajin.club:9090/target/target-script-min.js#anonymous" ></script>
在chrome瀏覽器中打開地址,選擇elements和console監測頁面
總的來講,這幾種方案覆蓋了大部分使用場景,開發過程當中問題不大。若是還有別的要排查的,整體來講不外乎加日誌、加alert等等,最優解是自帶的web檢查器,不過仍是結合着用吧,很是方便。
固然,還有一些很好用的調試工具像騰訊出品的vConsole也不錯,本身看着選擇吧。
還有,如app容器是你本身開發的,Android studio是會在log裏打印出console信息的。
咱們簡單分下狀況:
通常來講你須要用到的大部分ES6特性。 在Android 6.0或iOS 10.0以上均已實現隨便用,這如下就要注意兼容性問題了。 其中一些基礎特性,Android 5.1就已經支持了。
個人博客即將同步至騰訊雲+社區,邀請你們一同入駐:https://cloud.tencent.com/developer/support-plan?invite_code=3hape0w9ueqsk