快速实现抖音的分享&登录(android)

快速实现抖音分享与第三方登录

准备工作

1、注册抖音的key到抖音开放平台,点击这里查看步骤

2、集成ShareSDK到Mob官网文档页面查看即可,点击这里查看集成

业务代码

分享要求:

视频:

1、时长不符合要求,最大不能超过1小时,最小值抖音动态配置;

2、非mp4文件;

3、画幅比例不支持;

4、视频文件不能正常解析;

5、视频文件分辨率过大(最小边小于1100);

图片:

1、宽高小于360;

2、宽高比不符合(需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系统

注意:目前分享图片只支持本地图片分享,建议直接保存到手机相册路径下分享,否则抖音可能无法找到图片

分享代码

1.自有界面分享

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());

2.单独图片分享

       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);

3.多图分享

       	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);

4.单独视频分享

        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);

5.多个视频拼接分享

		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);

分享效果
分享图片:

1.png

2.png

3.png

分享视频:

4.png

5.png

6.png

7.png

授权登录

登录后可以返回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);//授权并获取授权信息

注意事项:抖音申请的key是绑定包名的,所以绑定的key与app的包名不一致,会返回errcode:-4

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
实现抖音评论收起,您可以使用以下步骤: 1. 创建一个布局文件,其中包含抖音评论的视图。这个视图应该有一个“收起”按钮,当用户点击它时,评论应该被收起。 2. 在您的活动或片段中,设置一个布尔变量来跟踪评论是否被收起,并在您的onCreate方法中将其设置为false。 3. 在您的布局文件中,将评论视图的可见性设置为Vissible或Gone,具体取决于评论是否被收起。 4. 在“收起”按钮的点击侦听器中,将布尔变量设置为相反的值,并根据需要设置评论视图的可见性。 以下是一个示例代码: 布局文件: ``` <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <!--其他视图--> <TextView android:id="@+id/comment_text" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="这是一条评论。" android:padding="16dp"/> <Button android:id="@+id/collapse_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="收起" android:layout_below="@id/comment_text" android:layout_alignParentEnd="true" android:layout_marginTop="8dp" android:layout_marginEnd="16dp"/> </RelativeLayout> ``` Java代码: ``` public class MyActivity extends AppCompatActivity { private boolean isCollapsed = false; private TextView commentText; private Button collapseButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); commentText = findViewById(R.id.comment_text); collapseButton = findViewById(R.id.collapse_button); collapseButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { isCollapsed = !isCollapsed; commentText.setVisibility(isCollapsed ? View.GONE : View.VISIBLE); collapseButton.setText(isCollapsed ? "展开" : "收起"); } }); } } ``` 这样,当用户点击“收起”按钮时,评论将被折叠,并且按钮将显示“展开”文本。当用户再次点击按钮时,评论将展开,并且按钮将显示“收起”文本。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值