黄页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已经达到 ...
随机推荐
- table中的标题行冻结的简单实现
这里只是简单的实现,主要是用了position属性的fixed属性值,这个属性值需要高版本浏览器的支持,如果要兼容低版本的浏览器可以通过写脚本的方式实现,也可以使用UI库,有些UI库里面表格插件的标题 ...
- java矩阵相乘的计算
package a123; import java.util.Scanner; public class a132 { public static void main(String args[]) { ...
- IntelliJIDEA 14创建Maven管理的Java Web项目
1.新建项目,选择Maven,点击Next继续. 接着输入项目名 接着直接点击Finish即可 下图就是创建完毕后的Maven项目,双击pom.xml查看POM文件内容,可以自行添加Maven的依赖. ...
- Windows中多个python版本共存的问题
原创文章,未经本人允许进制转载. 在我的Windows中,先安装了python3.4,后来因为需要又安装了python2.7,结果发现: 直接双击1.py和命令行python 1.py使用的pytho ...
- React Native填坑之旅--ListView篇
列表显示数据,基本什么应用都是必须.今天就来从浅到深的看看React Native的ListView怎么使用.笔者写作的时候RN版本是0.34. 最简单的 //@flow import React f ...
- [UE4]武器碰撞
实现武器战斗伤害系统,击中时如何发出碰撞事件产生伤害,目前探索的有通过物理碰撞和LineTrace两种方法. 物理碰撞通过Overlap事件的方法,优点是易于实现,缺点是无法具体到碰撞骨骼位置,低帧数 ...
- Linux 下zip包的压缩与解压
linux zip 命令详解 功能说明:压缩文件. 语 法:zip [-AcdDfFghjJKlLmoqrSTuvVwXyz$][-b <工作目录>][-ll][-n <字尾字符串& ...
- jqPlot图表插件学习之饼状图和环状图
一.准备工作 官网下载(笔者选择的是jquery.jqplot.1.0.8r1250.zip这个版本) 然后读者需要根据自己的情况新建一个项目并且按照如下的方式加载对应的js和css(因为笔者在VS2 ...
- starUML使用教程
starUML使用教程 下载与安装 先从官网下载软件,这个版本是收费的,但可以先进行试用.也可以使用免费版,基本UML依然齐全,但用起来感觉没有收费版好用. 下载之后按照安装说明,一步步安装就可以了. ...
- mongo(四)索引
mongo(四)索引 根据这里http://www.cnblogs.com/huangxincheng/archive/2012/02/29/2372699.html 首先,需要构造一些数据,如下 ...