黄页js-sdk开发总结分享
2014年,为了方便第三方开发者能够调用本地的一些功能,我们提供了一套js-sdk。通过调用我们的接口,开发者可以定制UI,获取当前的手机状态,调用支付,黄页扫一扫功能,为用户提供更加优质的体验。下面来分几个主题总结下
1.前期调研
我们给的定位就是web端需要调用本地的一些功能,简单的定制UI。
开始我们主要就是参考微信,那个时候微信还没有开放js 接口,只提供了一些定位,判断网络状态,隐藏顶部和底部的一些小功能。微信是将js植入到webview 里面去了,只要开启webview 的时候,这个js 就自动的加载了。我们也采取这种形式,由客户端主动的将js load进去,web 开发的同学不需要再次引入了,直接使用我们的api 就可以了。另外作为一个特殊的webview,我们也给UA 加上了 MiuiYellowPage,来和其他的webview区别开来。
2.设计接口
在这块我们主要是考虑易用,易扩展、方便维护。前端的代码尽量少,客户端如果新增加接口,前端也不用去新增加代码,就直接可以使用客户端的方法,当然在使用之前,我们需要检查是否支持客户端的方法。
到现在为止我们将接口分为8大类:
1).基础类接口
主要是判断是否支持某一个接口
2).支付类接口
接入了我们的小米支付和支付宝快捷支付功能
3).设备接口
判断是联网还是断网的
4).分享接口
目前主要是分享微博功能,后期我们考虑添加分享微信
5).界面操作类接口
主要是设置title,隐藏底部工具条
6).地理位置
获得当前的地理位置
7).监听类接口
检测homepress键是否点击
8).扫一扫接口
扫描二维码和条形码
因此我们需要一种消息管理,事件管理,检测本地能力,自动mix同步客户端方法等4种机制。
3.安全性
考虑到一些内部的一些方法不能被第三方使用,我们分成了2个不同的Fragment,一些公用的方法写成了base,现在的做法是通过域名去控制内部和第三方的。
4.接口测试
测试分为2个部分,本地测试和线上真机调试。
对于本地调试:我们写了一个测试页面。每一个功能就是一个按钮,我们通过点击按钮的形式去测试功能的正确性。
如下图:

线上真机调试:我们开启了一个电话号码908888880010,拨打这个号码,就自动识别为webview 的测试,点击详情页,就能看到测试页面,进入测试页面,我们就能够看到我们所有的功能。
如下图:

5.文档编写
主要分为对内和对外文档。
对内,客户端的同学使用javadoc 生成了一套native 端的一些方法,主要客户端有方法新增,就自动执行下,然后方法也有了。web这边能及时的看到。
对外,主要是方便第三方开发者使用,我们写了一个入门教程。在使用的过程中,也发现开发者不停的提出一些问题,我们都放到了FAQ里面去了。
黄页js-sdk开发总结分享的更多相关文章
- 实战微信JS SDK开发:贺卡制作与播放(1)
前段时间忙于CanTK 2.0的开发,所以博客一直没有更新.CanTK 2.0主要增强了游戏和富媒体的开发,现在编码和测试基本完成了,等文档完成了再正式发布,里面有不少激动人心的功能,等发布时再一一细 ...
- 实战微信JS SDK开发:贺卡制作与播放(2)
最近同事用CanTK开发了一个基于微信的贺卡制作APP,我虽然没有参与开发,但是提供CanTK和GameBuilder的技术支持,觉得有些东西比较有意思,写几篇博客和大家分享吧.这个贺卡APP完全开源 ...
- 公众号第三方平台开发 教程六 代公众号使用JS SDK说明
公众号第三方平台开发 教程一 创建公众号第三方平台 公众号第三方平台开发 教程二 component_verify_ticket和accessToken的获取 公众号第三方平台开发 教程三 微信公众号 ...
- Node.js SDK与fabric链码交互开发
1.本篇背景 前面已经对链码开发作了比较详细的介绍,并且对官方提供的 fabcar 链码进行了解读,本篇将介绍如何使用 Node.js SDK 与区块链网络中的链码进行交互. 本篇内容基本来自官方 H ...
- 分享Node.js + Koa2 + MySQL + Vue.js 实战开发一套完整个人博客项目网站
这是个什么的项目? 使用 Node.js + Koa2 + MySQL + Vue.js 实战开发一套完整个人博客项目网站. 博客线上地址:www.boblog.com Github地址:https: ...
- JS模块化开发:使用SeaJs高效构建页面
一.扯淡部分 很久很久以前,也就是刚开始接触前端的那会儿,脑袋里压根没有什么架构.重构.性能这些概念,天真地以为前端===好看的页面,甚至把js都划分到除了用来写一些美美的特效别无它用的阴暗角落里,就 ...
- 微信公众账号 Senparc.Weixin.MP SDK 开发教程 索引
Senparc.Weixin.MP SDK从一开始就坚持开源的状态,这个过程中得到了许多朋友的认可和支持. 目前SDK已经达到比较稳定的版本,这个过程中我觉得有必要整理一些思路和经验,和大家一起分享. ...
- [deviceone开发]-QQ分享、微信分享和新浪微博分享
一.简介 该demo主要实现QQ分享.微信分享和新浪微博分享.(调试包请到论坛扫描对应二维码下载) 二.效果图 三.相关讨论 http://bbs.deviceone.net/forum.php?mo ...
- Vmware Vsphere WebService SDK开发(第一讲)-基本知识学习
刚开始这方面开发的时候,不知道如何下手,能够查到的资料特别少,而且看到很多网友和我一样也在找这方面的资料.接下来的一段时间我就结合自己所参与的项目,完成关于Vmware Vsphere WebServ ...
- 【转】微信公众账号 Senparc.Weixin.MP SDK 开发教程 索引
微信公众账号 Senparc.Weixin.MP SDK 开发教程 索引 Senparc.Weixin.MP SDK从一开始就坚持开源的状态,这个过程中得到了许多朋友的认可和支持. 目前SDK已经达到 ...
随机推荐
- 让linux中的程序崩溃时生成core文件
当我们的linux程序崩溃的时候,常常会有这样的提示: Segmentation fault (core dumped) 段错误 (核心已转储) 提示说生成了core文件,但是此功能 ...
- MySQL日期时间函数大全(转)
MySQL日期时间函数大全 DAYOFWEEK(date) 返回日期date是星期几(1=星期天,2=星期一,……7=星期六,ODBC标准)mysql> select DAYOFWEEK('1 ...
- HDU 5023 A Corrupt Mayor's Performance Art (据说是线段树)
题意:给定一个1-n的墙,然后有两种操作,一种是P l ,r, a 把l-r的墙都染成a这种颜色,另一种是 Q l, r 表示,输出 l-r 区间内的颜色. 析:应该是一个线段树+状态压缩,但是我用s ...
- Android性能优化方法(八)
Android SDK tools目录下提供一个观察布局的工具,层级观察器(Hierarchy Viewer).Hierarchy Viewer工具是一个非常好的布局优化工具,同时,你也可以通过它学习 ...
- 删除xcode中的描述文件的路径
打开Finder commend + shift +g 进入文件夹 : ~/Library/MobileDevice/Provisioning Profiles 删除即可
- 人脸识别经典算法一:特征脸方法(Eigenface)
这篇文章是撸主要介绍人脸识别经典方法的第一篇,后续会有其他方法更新.特征脸方法基本是将人脸识别推向真正可用的第一种方法,了解一下还是很有必要的.特征脸用到的理论基础PCA在另一篇博客里:特征脸(Eig ...
- PHP会话Session
<?php //开启会话,PHP会话也提供多种存储方式,文件.数据库等 session_start(); if(isset($_GET['user'])) { $_SESSION['user'] ...
- Asp.NET MVC 拍卖网站,拆解【2】 Asp.NET MVC章回,第(1)节
时间和篇幅所限,MVC不会介绍基本的建站过程,请参照博客园技术专题文章传送门 英语足够好的请直接去微asp.net 官网 传送门(强烈推荐,尤其是想使用最新技术的时候更应该直接去官网),本文主要介绍 ...
- 重新延时运行的Js 实现
场景 1. AutoComplete 插件, 当用户的输入空闲0.5s 时,才向服务发送请求.而不是用户输入每一个字符都要请求服务器. 2. 图片懒加载时,用户拖动滚动条空闲0.5s时,才遍历懒加载的 ...
- [游戏模版5] Win32 折线 弧线
>_<:first build some points put in poly1[],poly2[] and poly3[] in the function of InitInstance ...