概述
本文主要描述YNOTE SDK的开放的接口设计,目标读者为开发人员,测试人员和架构师。
主要功能
从第三方发送笔记到有道云笔记
添加第三方应用的快捷启动到有道云笔记
从有道笔记启动注册的第三方应用
API使用指南
申请应用程序AppID
1.为你的应用申请ConsumerKey(每个应用对应一个ConsumerKey)
2.为应用的每个平台申请AppID(Android平台和IOS平台对应不同的AppID)
下载有道云笔记Android端开发工具包
使用sdk提供的api
1.利用申请到的AppId生成api接口类
final IYNoteAPI api = YNoteAPIFactory.getYNoteAPI(this, AppId);
2.注册App到有道云笔记
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));
or
mContent.addObject(new YNoteImageContent(absPath));
or
mContent.addObject(new YNoteImageContent(uri,absPath));
使用附件的绝对路径或者uri来定位附件
mContent.addObject(new YNoteAttachment (uri));
or
mContent.addObject(new YNoteAttachment (absPath));
or
mContent.addObject(new YNoteAttachment (uri,absPath));
-
4)生成发送笔记请求后设置笔记内容并发送
SendNoteRequest request = new SendNoteRequest();
request.setYNoteContent(mContent);
api.sendRequest(request);
4.从有道云笔记启动第三方应用
只要注册到有道云笔记,就可以在更多笔记类型中展示
如果第三方实现了packagename.ynoteapi.YNoteEntryActivity,启动第三方应用时将调用这个类,否则将直接启动应用程序
5.监听笔记打开事件
-
1)使用权限
-
2)注册receiver
-
3)简单的receiver只是处理注册事件
主要类
YNoteAPIFactory
API类工厂,取得api类
方法名 |
描述 |
---|---|
IYNoteAPI getYNoteAPI(Context context,String appId) |
取得有道云笔记API类 |
IYNoteAPI
Api类接口,用于注册应用、发送笔记等
方法名 |
描述 |
---|---|
void registerApp() |
注册应用到有道云笔记,从而有道云笔记的插件栏里可以显示该应用 |
void unregisterApp() |
取消注册 |
void isRegistered() |
是否注册过 |
boolean openYNoteApp() |
启动有道云笔记 |
boolean isYNoteAppSupportAPI() |
注检查有道云笔记是否支持API |
boolean sendRequest(BaseMessage request) |
发送请求到有道云笔记 |
boolean sendResponse(BaseMessage response) |
发送反馈到有道云笔记 |
int getSupportAPIVersion() |
取得有道云笔记支持的API最低版本 |
boolean handleIntent(Intent pIntent, IYNoteEventHandler pHandler) |
响应有道云笔记的请求和反馈 |
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) |
将正文请求放入bundle中 |
void fromBundle(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里还原出数据属性 |
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) |
设置图片uri |
String getPath() |
取图片绝对路径 |
Uri getUri() |
取图片uri |
YNoteAttachment extends YNoteContentObject
图片对象
方法名 |
描述 |
---|---|
void setPath(String path) |
设置附件绝对路径 |
void setUri(Uri uri) |
设置附件uri |
String getPath() |
取附件绝对路径 |
Uri getUri() |
取附件uri |
YNoteAPIConstants
常量类