黄页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已经达到 ...
随机推荐
- Java 第14章 字符串
字符串 基本数据类型和引用数据类型作为方法参数 ,在传递时有什么不同之处. 答:基本数据类型按值传递,相当于复制了一份过去. 引用数据类型是指向引用 内存地址,两个地方 根据地址使用同一份数据,如被更 ...
- sql关键字的解释执行顺序
sql关键字的解释执行顺序 分类: 笔试面试总结2013-03-17 14:49 1622人阅读 评论(1) 收藏 举报 SQL关键字顺序 表里面的字段名什么符号都不加,值的话一律加上单引号 有一 ...
- [PHP-Socket] Socket Programming in PHP
Simple Client-Server socket program in PHP Introduction Sockets are used for interprocess communicat ...
- IOS, xib和storyboard的混用
1. 从xib的viewcontroll中启动storyboard 或者 从一个storyboard切换到另一个storyboard: [objc]– (IBAction)openStoryboard ...
- java基础知识分析: final , finally,finalize
final final-修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承.因此一个类不能既被声明为 abstract的,又被声明为final的.将变量或方 ...
- CSDN 分糖果算法的思路和求助
昨天晚上 在csdn上做了一道分糖果的题目,我自个测的是没有问题,但是提交答案后,老失败,提示 你的程序正常运行并输出了结果,但是答案错误你的程序输出结果与测试数据中的输出结果不符 我先把自个思路说一 ...
- 修改开机启动等待时间(for Ubuntu12.10)
Ubuntu的开机启动等待时间默认是10s,等待时间比较长,每次启动都得按一下回车,于是就想修改一下等待时间.我们可以找到Grub的配置文件(/boot/grub/grub.cfg),在其中进行个性化 ...
- VPS CentOS-6 下 LNMP HTTP服务器的搭建
VPS CentOS-6 下 LNMP HTTP服务器的搭建 前言 恢复更新后的第一篇博文, 前段时间由于各种理由, 把博客更新给宕掉了, 个人独立博客的开发也搁浅了, 现在随着工作的逐步稳定, 决心 ...
- 从源代码分析Universal-Image-Loader中的线程池
一般来讲一个网络访问就需要App创建一个线程来执行,但是这也导致了当网络访问比较多的情况下,线程的数目可能积聚增多,虽然Android系统理论上说可以创建无数个线程,但是某一时间段,线程数的急剧增加可 ...
- 通过Anuglar Material串串学客户端开发 - javascript编译和gulpfile.js
Angular Material不仅仅有本身框架的源代码,还有在这个框架上实现的一个应用docs.更为强大的是,这个应用是真正的产品网站:就是它的官网.我有理由相信,这个网站是从源代码直接发布的,从网 ...