有道云笔记 Android 端 SDK 文档 概述 本文主要 YNOTE SDK 的开放的接口设计, 目标读者为开发人员, 测试人 员和架构师 主要功能 从第三方发送笔记到有道云笔记添加第三方应用的快捷启动到有道云笔记从有道笔记启动注册的第三方应用 开发者注册 1. 注册账号 2. 添加 APP 从而获取 APP ID 应用名称应用应用下载市场连接 应用官方网站 ( 可选 ) 水印图标高清图标 应用签名 应用报名 3. 等待审核 - 可以开发调试, 但是受限 4. 审核通过 API 使用指南 1. 下载有道云笔记 Android 端开发工具包 1)Ynote_sdk_sample 工程
样例工程, 导出工程签名时需要使用工程中的签名文件 (debug.keyste), 密码为 android 2)Libynotesdk.jar 开发 sdk 用到的包 3)YNoteSigFetcher.apk 取应用指纹工具 4)sdk 文档 2. 申请应用程序 AppID 使用签名抽取工具 (sigfetcher) 取得应用指纹信息 ( 请确保应用的签名信息正确 ), 并到开发者应用程序登记页面进行 App 注册取得 AppId, 为了笔记的跨平台处理, 目前需要先注册 OpenApi 3. 使用 sdk 提供的 api [1] 利用申请到的 AppId 生成 api 接口类 final IYNoteAPI api = YNoteAPIFacty.getYNoteAPI(this, AppId); [2] 注册 App 到有道云笔记 if(!api.isregistered()){ api.registerapp(); } 注册成功的应用可以在有道云笔记更多笔记中展示 [3] 保存笔记到有道云笔记 1) 生成正文容器 YNoteContent mcontent = new YNoteContent(); 2) 为正文添加标题 mcontent.settitle("from sdk sample");
3) 为正文添加文本 图片 及附件, 保持添加顺序 mcontent.addobject(new YNotePlainTextContent(txt)); mcontent.addobject(new YNoteHtmlTextContent(txt)); 使用图片的绝对路径或者 uri 来定位图片 mcontent.addobject(new YNoteImageContent(uri)); mcontent.addobject(new YNoteImageContent(absPath)); mcontent.addobject(new YNoteImageContent(uri,absPath)); 使用附件的绝对路径或者 uri 来定位附件 mcontent.addobject(new YNoteAttachment (uri)); mcontent.addobject(new YNoteAttachment (abspath)); mcontent.addobject(new YNoteAttachment (uri,abspath)); 4) 生成发送笔记请求后设置笔记内容并发送 SendNoteRequest request = new SendNoteRequest(); request.setynotecontent(mcontent); api.sendrequest(request); [4] 从有道云笔记启动第三方应用 1) 只要成功注册到有道云笔记, 就可以在更多笔记类型中展示应用的图标 ; 2) 如果第三方实现了 packagename.ynoteapi.ynoteentryactivity 并在 manifest 中设 activity 的 expt=true, 点击第三方应用图标时, 笔记将调用这个页面, 否则将直接启动应用程序 ; 3) 如果工程使用代码混淆并使用 YNoteEntryActivity, 则需要保持 YNoteEntryActivity 不被混淆, 在 proguard.cfg 加上 -keep class packagename.ynoteapi.ynoteentryactivity {*;} [5] 监听笔记打开事件 1) 使用权限
2) 注册 receiver 3) 简单的 receiver 只是处理注册事件 主要类 YNoteAPIFacty API 类工厂, 取得 api 类 IYNoteAPI getynoteapi(context context,string appid) 取得有道云笔记 API 类 IYNoteAPI Api 类接口, 用于注册应用 发送笔记等 void registerapp() 注册应用到有道云笔记, 从而有道云笔记的插 件栏里可以显示该应用
void unregisterapp() void isregistered() boolean openynoteapp() boolean isynoteappinstalled() boolean isynoteappsupptapi() boolean sendrequest(basemessage request) boolean sendresponse(basemessage response) int getsupptapiversion() boolean handleintent(intent pintent, IYNoteEventHandler phandler) 取消注册是否注册过启动有道云笔记检查有道云笔记是否安装检查有道云笔记是否支持 API 发送请求到有道云笔记发送反馈到有道云笔记 () 取得有道云笔记支持的 API 最低版本响应有道云笔记的请求和反馈 IYNoteEventHandler 事件响应类, 响应有道云笔记的操作 void handlerequest(intent requestintent) void handleresponse(intent reponseintent) 当接收到有道云笔记发来的请求时调用 当接收到有道云笔记发来的响应时调用 BaseMessage 所有传递消息的父类 int getmsgtype() 消息的类型
void settransaction(string trans) 设置消息回话 ID, 默认设置为当前系统时间 string gettransaction() 取得消息回话 ID CreateNoteRequest extends BaseMessage 从有道云笔记启动第三方应用时传递的信息类, 用于标识传递的信息类型及扩展 SendNoteRequest extends BaseMessage 从第三方应用发送到有道云笔记的请求 int gettype() void setynotecontent(iynotecontent content) void tobundle(bundle bundle) void frombundle(bundle bundle) 请求的类型设置笔记正文将正文请求放入 bundle 中从 bundle 中取得正文请求 YNoteContent 笔记正文容器类, 可以添加正文内容对象 boolean addobject(ynotecontentobject contentobject) void settitle(string title) String gettitle() void tobundle(bundle bundle) 添加内容数据对象设置标题取得标题保存内容到 bundle 中
void frombundle(bundle bundle) 从 bundle 中取得内容 IYNoteContentObject 笔记内容对象 int gettype() void tobundle(bundle bundle) void frombundle(bundle bundle) 返回数据对象把数据属性存到 bundle 里从 bundle 里还原出数据属性 YNotePlainTextContent extends YNoteContentObject 平文本对象 void setplaintext(string txt) String getplaintext() 设置平文本内容 取平文本内容 YNoteHtmlTextContent extends YNoteContentObject html 文本对象 void sethtmltext(string txt) 设置带 html 格式的文本内容,html 标签可以 包含在 <body> 中 String gethtmltext() 取带 html 格式的文本内容 YNoteImageContent extends YNoteContentObject
图片对象 void setpath(string path) void seturi(uri uri) String getpath() Uri geturi() 设置图片绝对路径设置图片 uri 取图片绝对路径取图片 uri YNoteAttachment extends YNoteContentObject 附件对象 void setpath(string path) void seturi(uri uri) String setpath() Uri geturi() 设置附件绝对路径设置附件 uri 取附件绝对路径取附件 uri YNoteAPIConstants 常量类