帮助与文档 > 产品文档 > 多文本编辑器 > Android SDK 文档

有道编辑器SDK文档

一、有道智云翻译 SDK 简介

有道编辑器SDK是有道开放平台提供的云服务之一,是有道编辑器接口的一种实现。拥有多年产品化实践经验,服务于有道云笔记千万用户。

通过SDK接入优势:

  1. 支持常用的编辑功能,满足绝大多数的内容编辑场景
  2. 支持iOS、Android和桌面端WebKit内核的浏览器
  3. 自由格式的文档结构定义

二、集成前提

开始集成SDK之前开发者需要登录有道开放平台(http://ai.youdao.com),创建应用获取应用ID(或者通过运营人员获取应用ID),以便使用编辑器sdk服务,编辑器SDK只支持Android5.0及以后的系统。

编辑器sdk有以下几个部分组成:

文件说明
editorsdk-release.aar可用于集成的sdk aar文件
YoudaoEditorSdk.zipsdk使用demo

三、SDK集成步骤

1. 添加相应的jar包

SDK使用的是aar引入方式,需要把对应的editorsdk.aar导入到libs目录下,然后在build.gradle中添加对应的设置:

repositories {
    flatDir {
        dirs 'libs'
    }
}
dependencies {
    ...
    compile(name: 'editorsdk', ext: 'aar')
    ...
}

2. 配置NDK

详细配置请参见NDK官方配置文档

3. 权限添加

在AndroidManifest.xml中添加权限:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

4. 代码引用

所有的编辑器功能都需要初始化key,只执行初始化一次即可。建议用户在新建MyApplication中的onCreate中初始化key。

package com.youdao.ynote.editorsdk;

import android.app.Application;

import com.youdao.youdao_editor_sdk.YNoteEditorApi;

public class MyApplication extends Application {
    private static final String APP_KEY = "appkey";

    @Override
    public void onCreate() {
        super.onCreate();

        YNoteEditorApi.init(this, APP_KEY);
    }
}

在代码中使用时,可直接将YNoteEditor作为一个自定义视图使用,添加到自己的layout之中,用于内容编辑。如我们可以在layout/activity_main.xml中添加:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="vertical">

    <com.youdao.youdao_editor_sdk.YNoteEditor
        android:id="@+id/note_editor"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

    </com.youdao.youdao_editor_sdk.YNoteEditor>
</LinearLayout>

这样的话,就在MainActivity添加了编辑器组件,可以进行内容的编辑。

5. 功能集成说明

5.1. public class YNoteEditorAPI

作为主要的API类,用于定义SDK全局的属性和方法。

  • 初始化

       /**
    * 初始化编辑器sdk,没有初始化会导致后续使用异常
    * 初次初始化需要联网,否则会导致App校验不通过,无法使用编辑器功能
    * context需要传入ApplicationContext
    * APP_KEY为当前App指定的Key
    */
       YNoteEditorAPI.init(Context context, String appKey);
  • 设置调试模式

  1. boolean isDebugging = false;

5.2. public class YNoteEditor

主要的自定义空间类,用于编辑内容。

  • 设置编辑器回调

    /**
     * 设置编辑器回调
     * @param callBack 编辑器回调对象
     */
    public void setEditorCallBack(EditorCallBack callBack)

  • 设置笔记内容

    /**
     * API接口,设置笔记内容
     * @param noteContent 笔记内容,xml格式
     */
    protected void setNoteContent(String noteContent)

  • 设置笔记内容

    /**
     * 设置笔记内容
     * @param noteContent 笔记内容
     * @param contentType 内容格式,支持xml和json
     */
    public void setNoteContent(String noteContent, YNoteContentType
        contentType);

  • 插入图片

    /**
     * API接口,插入图片
     * @param source 图片路径,支持网络或本地文件路径
     */
    protected void insertImage(@NonNull String source)

  • 获取笔记内容

    /**
     * 获取笔记内容,内容在回调对象的onFetchNoteContent中返回
     */
    protected void getNoteContent()

  • 获取笔记内容

    /**
     * 获取笔记内容
     * @param contentType 内容类型,内容在回调对象的onFetchNoteContent中返回
     */
    public void getNoteContent(YNoteContentType contentType);

  • 判断笔记内容是否有修改

    /**
     * 内容是否有修改
     * @return
     */
    public boolean isContentChanged()

5.3. public interface EditorCallBack

EditorCallBack接口的实例对象用于设置编辑器回调中设置,

  • 获取当前Activity

    public @NonNull Activity currentActivity();

  • 获取笔记内容回调

      /**
    * 获取笔记内容的回调接口
    * @param noteContent 当前编辑器内的笔记内容
       */
      protected abstract void onFetchNoteContent(String noteContent);

  • 点击拍照按钮回调

    /**
     * 点击拍照按钮
     */
    protected abstract void onPressTakePhoto();

  • 点击选择图片回调

    /**
     * 点击选图按钮
     */
    protected abstract void onPressPickPhoto();

  • 点击编辑器内图片回调

      /**
    * 点击图片
    * @param resourceUrl 图片地址
    */
      protected abstract void onClickImage(String resourceUrl);

  • 点击编辑器内附件回调

    /**
     * 点击附件
     * @param fileName 附件文件名
     * @param resourceUrl 附件下载路径
     */
    protected abstract void onClickAttachment(String fileName,
                                           String resourceUrl);

  • 粘贴板处理的回调

       /***
        * 获取复制到粘贴板的真实内容,如果不需要处理,可直接返回null。
        * @param html 从笔记中的复制的原内容
        */
       public String getClipboardContent(String html);
  • 错误回调

    /***
     * 错误回调
     * errorCode会返回错误原因
     * PERMISSION_DENTED:权限错误(APP_KEY不匹配或网络连接错误)
     * OTHER:其他错误
     */
    public void onError(ErrorCode errorCode)

四、常见问题及注意事项

  1. 编译错误

请检查是否正确配置了NDK。

  1. 无法使用编辑器

请检查APP_KEY和包名是否匹配。另外,第一次进入APP需要联网校验该APP是否授权,请检查是否联网。

五、错误代码列表

错误代码定义常量错误原因
10000ErrorCode.OTHER未知错误
10001ErrorCode.PERMISSION_DENIED当前App没有权限

六、版本更新记录

上线日期版本号更新内容
2018.4.26v1.0.0有道编辑器SDK Android版上线,支持富文本编辑
2018.11.9v1.1.0增加纯文本和html格式输出
文档是否有帮助解决问题?

如有其它疑问,可在此提交意见和反馈
详细描述(选填)
联系邮箱(选填)
留下您的合作信息,专业顾问将联系您提供免费的咨询
是否为渠道商:
服务类型:
详细分类:
所属地区:
所属行业:
公司名称:
业务简介:
使用场景:
使用量级:
联系人姓名:
联系人电话:
联系人邮箱:
联系人职务:
来源渠道:
verificatiton pics
验证码:
联系方式
合作咨询
联系电话:010-8255-8901
商务合作:
投诉反馈:
地       址:北京市海淀区西北旺东路10号院 中关村软件园二期西区7号 网易(北京)公司
微信公众号
微信小程序
 
 
©2019 网易公司 京ICP证080268号