<wbr id="juant"></wbr>
  • <wbr id="juant"></wbr>
    更多課程 選擇中心


    Python培訓

    400-111-8989

    集五福?用 Python 做點事情吧! Python集五福教程

    • 發布:馬超
    • 來源:DeveloperPython
    • 時間:2018-02-07 14:28

    相信大家今天都知道了支付寶集五福的活動,對于二次使用這種運營模式的行為我暫不做評價,畢竟大家都是程序員。

    我這次和大家聊聊這塊的技術點,以及如何用 Python 來做點事情。所有技術點到為止不做深究。

    1、Hybrid + 緩存機制

    很多人可能更關注怎么快速集齊五福。但若你是一枚程序員,有沒有考慮過整個集五福的技術是如何設計的?其次這幾個頁面到底是不是用原生開發的,如果是原生為什么沒有更新版本,如果不是那又是用什么開發的以及如何做到如此流暢?

    答案是 Hybrid ,來靈活的完成復雜的運營活動。

    Hybrid 可能有的人比較陌生,我在很早的一篇文章 微信新功能「微信指數」 大數據、小程序 中也提到過這塊的技術。通俗的來講這是一套原生 Native  + 動態語言的混合編程框架。

    當然這次只提 Native +  H5 的混合開發,不涉及其他動態語言 Weex 、RN 之類的。

    如果你是一名移動應用開發者,相信你對 WebView 應該不陌生。這個 View 的內部是通過 WebKit 內核對 html 以及 js 做一個解析和展示,同時由于它是一個 Native 的 View,所以它與生俱來的必然可以和Native 進行交互。

    再回到支付寶的集五福,這個頁面就是一個 h5  的頁面(判斷方式:Dump 當前頁面發現只是一個 WebView 組件)。

    H5 頁面已經正常加載了,那么哪個操作會和 Native 交互?

    “掃一掃”,因為涉及到了相機而這個又是硬件設備上的部件,所以無論如何這個 掃一掃 都會調用 Native 的  AR 組件去完成掃一掃的操作。

    因此我們看到的集五福是一個 H5 頁面,而 AR 掃一掃則是 Native 的頁面。

    2、WebView 和 Native 的交互

    這時候問題就來了,如何實現 WebView 和 Native 的交互?

    其實 WebView 在最初設計的時候就提供了一個 setJSInterface 接口用來設置 Native 暴露給 H5 的接口。但這種方式很難維護而且它會將當前 Hybrid 的接口都暴露給前端頁面。

    還有一種方式是通過 console.log()。

    熟悉 WebView 的讀者應該知道這么一個類WebViewChromeClient ,在這個類里面有一個方法onConsoleMessage(),這個方法會在 JS 調用 console.log 的時候被調用,參數則是 log 信息。

    所以我們可以通過格式化的 log 來完成 H5 -> Native 的數據傳遞,如果 Native -> H5 則可以通過注入一個 JSBridge 來完成。

    3、緩存機制

    如果我們要使用 Hybrid 的技術,那么為了提升用戶體驗緩存機制是必不可少的。這也是為什么支付寶的集五福不會像我們用微信打開一個頁面那么慢,它幾乎是瞬間打開。

    我們可以將這個運營活動想成一個 H5 App,這個 H5App 里面包含了 html、js、css 這些靜態資源。同時重寫 WebView 的 onShouldInterceptRequest 來攔截加載的 url 返回一個離線的數據。

    上面這種時序圖就展示了下原生的加載和緩存機制的一些區別,這中間還有更多的邏輯,比如域名的校驗、離線包的安全校驗等等的。

    雖說集五福是一個 H5 頁面,但更確切的來說它算是一個 H5App ,通過加載一些緩存的頁面來提升用戶體驗,以及完成更高效的版本維護。

    4、Python 做點事情

    這塊就不著重講解了,原理清楚了我相信大家都能做點東西出來。源碼直接去我的 Github,先表明一點這塊我沒花太多精力去實踐,所以看到源碼的別回來揍我就好。

    本文內容轉載自網絡,本著傳播與分享的原則,來源/作者信息已在文章頂部表明,版權歸原作者所有,如有侵權請聯系我們進行刪除!

    預約申請免費試聽課

    填寫下面表單即可預約申請免費試聽!怕錢不夠?可就業掙錢后再付學費! 怕學不會?助教全程陪讀,隨時解惑!擔心就業?一地學習,可全國推薦就業!

    上一篇:Python制作簡易瀏覽器
    下一篇:在linux系統中搭建Python環境

    2021年Python面試題及答案匯總詳解

    python數據分析,你需要這些工具

    Python培訓講解二叉樹的三種深度

    Python培訓:如何實現窮舉搜索?

    • 掃碼領取資料

      回復關鍵字:視頻資料

      免費領取 達內課程視頻學習資料

    • 視頻學習QQ群

      添加QQ群:1143617948

      免費領取達內課程視頻學習資料

    Copyright ? 2021 Tedu.cn All Rights Reserved 京ICP備08000853號-56 京公網安備 11010802029508號 達內時代科技集團有限公司 版權所有

    選擇城市和中心
    黑龍江省

    吉林省

    河北省

    湖南省

    貴州省

    云南省

    廣西省

    海南省

    天天日天天射天天干天天伊|奇米电影|奇米网_奇米首页|奇米首页 百度 好搜 搜狗
    <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>