简介

插件能提供环信通信的基本功能,包括联系人列表、最近通话等界面展示,提供登陆、注册、登出、获取好友等接口以供灵活使用。不用考虑环信sdk的接入,功能直接调用插件接口即可使用。

一、插件短链:

http://yyfr.net/q24

二、工程地址:

https://github.com/apkplug/plugspace/tree/master/EasePlugUser

三、宿主配置:

1 权限配置

<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

2 组件配置

<activity android:name="com.apkplug.easemobplug.ui.MainActivity"
android:theme="@style/Theme.AppCompat.NoActionBar"
android:windowSoftInputMode="adjustPan"
>

</activity>

3 其他配置

<!-- 设置环信应用的AppKey -->
<meta-data android:name="EASEMOB_APPKEY"  android:value="apkplug-libh#easeplug" />

四、插件使用:

通信接口:

uri=apkplug://measeplug/rpc/instance

1、登陆接口

传入参数:

UserName:String:用户名;

Password:String:密码

通信接口方法:

void loginByCode(String userName, String password, Action2 callback); boolean addFriend(String userName);

2、注册接口:

传入参数:

UserName:String:用户名;

Password:String:密码

通信接口方法

boolean regist(String userName, String password);

3、获取好友接口:

传入参数:无

通信接口方法

List getContents();

如果正确获取:List:好友列表

4、进入界面:

传入参数:

UserName:String:用户名;

Password:String:密码

通信接口方法

void loginByView(String userName, String password, Action2 callback);

五、示例代码

BundleRPCAgent agent = new BundleRPCAgent(FrameworkFactory.getInstance().getFrame().getSystemBundleContext());
    try {
        final IEaseInstance easeInstance = agent.syncCall("apkplug://measeplug/rpc/instance",IEaseInstance.class);
        easeInstance.loginByCode("xxxx", "xxxx", new Action2<Boolean, String>() {
            @Override
            public void call(Boolean aBoolean, String s) {
                if(!aBoolean){
                    return;
                }
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        textView.setText(textView.getText()+"\n环信登陆成功");
                    }
                });
                startChatActivity("com.apkplug.easemobplug.ui.LoginActivity");
            }
        });
    } catch (Throwable throwable) {
        throwable.printStackTrace();
    }

六、快速测试

可以通过如下接口一步从短链下载并测试rpc接口,短链为官方提供示例插件demo。

PlugManager.getInstance().getRPCInstanceByShortLink(true,“http://yyfr.net/q24”, “apkplug://measeplug/rpc/instance”, IEaseInstance.class, new OnGetRPCInstanceListener<IEaseInstance>() {
        @Override
        public void onDownloadProgress(String s, String s1, long l, long l1) {

            float percent = (float)l/(float) l1;
            Log.e("progress","percent:"+percent)
                      }

        @Override
        public void onInstallSuccess(org.osgi.framework.Bundle bundle) {
            Log.e("install s",bundle.getName());
        }

        @Override
        public void onGetRPCSuccess(IEaseInstance t) {
            t.loginByCode("xxxx", "xxxx", new Action2<Boolean, String>() {
            @Override
            public void call(Boolean aBoolean, String s) {
                if(!aBoolean){
                    return;
                }
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        textView.setText(textView.getText()+"\n环信登陆成功");
                    }
                });
                startChatActivity("com.apkplug.easemobplug.ui.LoginActivity");
            }
        });

        }

        @Override
        public void onFail(String s, String s1) {
            Log.e("fail",s+" "+s1);
        }
    });