一、注册抖音的key到抖音开放平台,点击这里查看步骤;html
二、集成ShareSDK到Mob官网文档页面查看便可,点击这里查看集成;android
视频:web
一、时长不符合要求,最大不能超过1小时,最小值抖音动态配置;app
二、非mp4文件;ide
三、画幅比例不支持;this
四、视频文件不能正常解析;spa
五、视频文件分辨率过大(最小边小于1100);code
图片:orm
一、宽高小于360;视频
二、宽高比不符合(需1/2.2<=宽高比<=2.2)
分享类型 | 参数 | 参数 | 参数 |
---|---|---|---|
分享图片 | shareType(SHARE_IMAGE) | imagePath(“/sdcard/”) | setActivity//适配9.0系统 |
分享图片 | shareType(SHARE_IMAGE) | imagePath(“/sdcard/”) | setActivity//适配9.0系统 |
分享多图 | shareType(SHARE_IMAGE) | imageArray(String[] AVATARS(多个本地图片)) | setActivity//适配9.0系统 |
分享视频 | shareType(SHARE_VIDEO) | FilePath(“/sdcard/下的视频路径”) | setActivity//适配9.0系统 |
多段视频拼接分享 | shareType(SHARE_VIDEO) | VideoPathArray(String[] AVATARS(多个本地视频路径)) | setActivity//适配9.0系统 |
注意:目前分享图片只支持本地图片分享,建议直接保存到手机相册路径下分享,不然抖音可能没法找到图片
onekeyshare的分享,SDK提供了界面,能够直接调用,不须要本身写界面进行触发,代码以下所示:
OnekeyShare oks = new OnekeyShare(); oks.setImagePath("/storage/emulated/0/DCIM/Camera/icon.png");//分享单独图片,图片建议放到相册目录下 // oks.setFilePath(testVideo);//分享单独视频 String[] AVATARS = { imagepath, imagepath2 }; // oks.setImageArray(AVATARS);//分享多图 String[] vedioarray = new String[]{ testVideo, testVideo }; oks.setVideoPathArray(vedioarray);//分享多段视频,自动拼接 oks.setShareContentCustomizeCallback(new ShareContentCustomizeCallback() { @Override public void onShare(Platform platform, cn.sharesdk.framework.Platform.ShareParams paramsToShare) { // TODO Auto-generated method stub if(platform.getName().equals("Douyin")){ paramsToShare.setShareType(Platform.SHARE_IMAGE);//设置抖音分享类型,图片是SHARE_IMAGE;视屏是SHARE_VEDIO } } }); // 启动分享GUI oks.show(MobSDK.getContext());
Platform douyin = ShareSDK.getPlatform(Douyin.NAME); Platform.ShareParams sp = new Platform.ShareParams(); sp.setImagePath("/storage/emulated/0/DCIM/Camera/icon.png");//暂时只支持本地图 sp.setShareType(Platform.SHARE_IMAGE);//设置分享图片类型 sp.setActivity(this);//android9.0及以上系统须要配置 douyin.setPlatformActionListener (this);//分享回调 douyin.share(sp);
Platform douyin = ShareSDK.getPlatform(Douyin.NAME); Platform.ShareParams sp = new Platform.ShareParams(); sp.setActivity(this);//适配android9.0 //多图 String[] AVATARS = { "/storage/emulated/0/DCIM/Camera/icon.png", "/storage/emulated/0/Pictures/Instagram/IMG_20181024_145311_121.jpg" }; sp.setImageArray(AVATARS); sp.setShareType(Platform.SHARE_IMAGE); douyin.setPlatformActionListener (this);//分享回调监听 douyin.share(sp);
Platform douyin = ShareSDK.getPlatform(Douyin.NAME); Platform.ShareParams sp = new Platform.ShareParams(); sp.setActivity(this);//适配android9.0 sp.setFilePath(testVideo);//配置视频本地路径 sp.setShareType(Platform.SHARE_VIDEO);//设置分享视频类型 douyin.setPlatformActionListener (this);//设置分享回调监听 douyin.share(sp);
Platform douyin = ShareSDK.getPlatform(Douyin.NAME); Platform.ShareParams sp = new Platform.ShareParams(); sp.setActivity(this); String[] vedioarray = new String[]{ testVideo, testVideo }; sp.setVideoPathArray(vedioarray); sp.setShareType(Platform.SHARE_VIDEO); douyin.setPlatformActionListener (this); douyin.share(sp);
分享效果
分享图片:
分享视频:
登陆后能够返回userid,咱们拿到userid能够做为用户登陆的惟一标识,进行绑定帐户就能够,还能够获取一些用户的头像和昵称信息,这样能够用来显示用户的信息页面中;
cn.sharesdk.framework.Platform dylogin = ShareSDK.getPlatform(Douyin.NAME); if(dylogin.isAuthValid()){//判断是否受权过,能够在这里实现本身的逻辑,受权过了能够在这里直接获取用户信息,id等,不须要重复登陆验证 dylogin.removeAccount(true);//能够移除受权 // return; } if(dylogin.isClientValid()){//判断手机中是否有抖音客户端,若是存在执行客户端操做,不存在实现web受权 Toast.makeText(MobSDK.getContext(), "抖音客户端", Toast.LENGTH_SHORT).show(); } dylogin.setPlatformActionListener(new PlatformActionListener() { @Override public void onError(Platform arg0, int arg1, Throwable arg2) { // TODO Auto-generated method stub System.out.println("------------失败"+arg2.toString()); arg2.printStackTrace();//打印失败错误码log runOnUiThread(new Runnable() { public void run() { Toast.makeText(MobSDK.getContext(),"失败", Toast.LENGTH_SHORT).show(); System.out.println("----------"); } }); } @Override public void onComplete(Platform arg0, int arg1, HashMap<String, Object> arg2) { // TODO Auto-generated method stub System.out.println("--------Platform----"+arg0.getDb().exportData());//查看受权信息,能够拿到后作后续操做; runOnUiThread(new Runnable() { public void run() { Toast.makeText(MobSDK.getContext(),"成功", Toast.LENGTH_SHORT).show(); System.out.println("----------"); } }); } @Override public void onCancel(Platform arg0, int arg1) { // TODO Auto-generated method stub System.out.println("-------取消"); } }); dylogin.SSOSetting(true);//设置SSO(客户端受权),false为优先客户端受权 ShareSDK.setActivity(this);//适配android9.0 dylogin.showUser(null);//受权并获取受权信息