2014年,爲了方便第三方開發者可以調用本地的一些功能,咱們提供了一套js-sdk。經過調用咱們的接口,開發者能夠定製UI,獲取當前的手機狀態,調用支付,黃頁掃一掃功能,爲用戶提供更加優質的體驗。下面來分幾個主題總結下前端
1.前期調研
咱們給的定位就是web端須要調用本地的一些功能,簡單的定製UI。
開始咱們主要就是參考微信,那個時候微信尚未開放js 接口,只提供了一些定位,判斷網絡狀態,隱藏頂部和底部的一些小功能。微信是將js植入到webview 裏面去了,只要開啓webview 的時候,這個js 就自動的加載了。咱們也採起這種形式,由客戶端主動的將js load進去,web 開發的同窗不須要再次引入了,直接使用咱們的api 就能夠了。另外做爲一個特殊的webview,咱們也給UA 加上了 MiuiYellowPage,來和其餘的webview區別開來。java
2.設計接口web
在這塊咱們主要是考慮易用,易擴展、方便維護。前端的代碼儘可能少,客戶端若是新增長接口,前端也不用去新增長代碼,就直接可使用客戶端的方法,固然在使用以前,咱們須要檢查是否支持客戶端的方法。
到如今爲止咱們將接口分爲8大類:
1).基礎類接口
主要是判斷是否支持某一個接口api
2).支付類接口
接入了咱們的小米支付和支付寶快捷支付功能安全
3).設備接口
判斷是聯網仍是斷網的微信
4).分享接口
目前主要是分享微博功能,後期咱們考慮添加分享微信網絡
5).界面操做類接口
主要是設置title,隱藏底部工具條工具
6).地理位置
得到當前的地理位置測試
7).監聽類接口
檢測homepress鍵是否點擊ui
8).掃一掃接口
掃描二維碼和條形碼
所以咱們須要一種消息管理,事件管理,檢測本地能力,自動mix同步客戶端方法等4種機制。
3.安全性
考慮到一些內部的一些方法不能被第三方使用,咱們分紅了2個不一樣的Fragment,一些公用的方法寫成了base,如今的作法是經過域名去控制內部和第三方的。
4.接口測試
測試分爲2個部分,本地測試和線上真機調試。
對於本地調試:咱們寫了一個測試頁面。每個功能就是一個按鈕,咱們經過點擊按鈕的形式去測試功能的正確性。
以下圖:
線上真機調試:咱們開啓了一個電話號碼908888880010,撥打這個號碼,就自動識別爲webview 的測試,點擊詳情頁,就能看到測試頁面,進入測試頁面,咱們就可以看到咱們全部的功能。
以下圖:
5.文檔編寫
主要分爲對內和對外文檔。
對內,客戶端的同窗使用javadoc 生成了一套native 端的一些方法,主要客戶端有方法新增,就自動執行下,而後方法也有了。web這邊能及時的看到。
對外,主要是方便第三方開發者使用,咱們寫了一個入門教程。在使用的過程當中,也發現開發者不停的提出一些問題,咱們都放到了FAQ裏面去了。