友盟第三方QQ登录分享

权限

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_LOGS" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.SET_DEBUG_APP" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.USE_CREDENTIALS" />
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
 
<meta-data
    android:name="UMENG_APPKEY"
    android:value="5ad9ea86a40fa36c140002a8" />
<meta-data
    android:name="UMENG_CHANNEL"
    android:value="Channel ID" />
<activity
    android:name="com.tencent.tauth.AuthActivity"
    android:launchMode="singleTask"
    android:noHistory="true">
    <intent-filter>
        <action android:name="android.intent.action.VIEW" />

        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />

        <data android:scheme="tencent1106856424" />
    </intent-filter>
</activity>
<activity
    android:name="com.tencent.connect.common.AssistActivity"
    android:configChanges="orientation|keyboardHidden|screenSize"
    android:theme="@android:style/Theme.Translucent.NoTitleBar" />
<activity android:name=".show.mine.login.view.LoginActivity" />
<activity android:name=".show.mine.register.view.RegisterActivity" />
<activity
    android:name=".wxapi.WXEntryActivity"
    android:configChanges="keyboardHidden|orientation|screenSize"
    android:exported="true"
    android:screenOrientation="portrait"
    android:theme="@android:style/Theme.Translucent.NoTitleBar" />

MyAPP初始化

UMConfigure.init(this, 0, null);
/**
 * 设置组件化的Log开关
 * 参数: boolean 默认为false,如需查看LOG设置为true
 */
UMConfigure.setLogEnabled(true);
  PlatformConfig.setWeixin("wx396ea2b17e2f8938", "a33aae6c6649257cbb48de80ddb0bf90");
  PlatformConfig.setQQZone("1106856424", "7eeg8p2jwgxj0Hts");
分享工具类

/**
 * Created by Dash on 2017/12/8.
 *
 * 友盟分享的工具类....主要是分享链接
 */
public class ShareUtil {
    /**
     * 分享链接
     */
    public static void shareWeb(final Activity activity, String WebUrl, String title, String description, String imageUrl, int imageID, SHARE_MEDIA platform) {
        UMWeb web = new UMWeb(WebUrl);//连接地址
        web.setTitle(title);//标题
        web.setDescription(description);//描述
        if (TextUtils.isEmpty(imageUrl)) {
            web.setThumb(new UMImage(activity, imageID));  //本地缩略图
        } else {
            web.setThumb(new UMImage(activity, imageUrl));  //网络缩略图
        }
        new ShareAction(activity)
                .setPlatform(platform)
                .withMedia(web)
                .setCallback(new UMShareListener() {
                    @Override
                    public void onStart(SHARE_MEDIA share_media) {

                    }

                    @Override
                    public void onResult(final SHARE_MEDIA share_media) {
                        activity.runOnUiThread(new Runnable() {
                            @Override
                            public void run() {
                                if (share_media.name().equals("WEIXIN_FAVORITE")) {
                                    Toast.makeText(activity, share_media + " 收藏成功", Toast.LENGTH_SHORT).show();
                                } else {
                                    Toast.makeText(activity, share_media + " 分享成功", Toast.LENGTH_SHORT).show();
                                }
                            }
                        });
                    }

                    @Override
                    public void onError(final SHARE_MEDIA share_media, final Throwable throwable) {
                        if (throwable != null) {
                            Log.d("throw", "throw:" + throwable.getMessage());
                        }
                        activity.runOnUiThread(new Runnable() {
                            @Override
                            public void run() {
                                Toast.makeText(activity, share_media + " 分享失败", Toast.LENGTH_SHORT).show();

                            }
                        });
                    }

                    @Override
                    public void onCancel(final SHARE_MEDIA share_media) {
                        activity.runOnUiThread(new Runnable() {
                            @Override
                            public void run() {
                                Toast.makeText(activity, share_media + " 分享取消", Toast.LENGTH_SHORT).show();
                            }
                        });
                    }
                })
                .share();

    }

}
实体类

public class LoginActivity extends AppCompatActivity implements View.OnClickListener, ILoginActivity {

    /**
     * 请输入手机号
     */
    private EditText mTel;
    /**
     * 请输入密码
     */
    private EditText mPwd;
    /**
     * 登录
     */
    private Button mLogin;
    /**
     * 注册
     */
    private Button mReg;
    private ImageView mQq;
    private ImageView mWeixin;
    private ImageView mWeobi;
    private String screenname;
    private String iconurl;
    private Bundle bundle;
    private LoginPersenter loginPersenter;
    //分享的监听
    private UMShareListener umShareListener = new UMShareListener() {
        @Override
        public void onStart(SHARE_MEDIA share_media) {
            Log.e("onStart", "onStart");
        }

        @Override
        public void onResult(SHARE_MEDIA share_media) {
            Log.e("onResult", "onResult");
        }

        @Override
        public void onError(SHARE_MEDIA share_media, Throwable throwable) {
            Log.e("onError", "onError");
        }

        @Override
        public void onCancel(SHARE_MEDIA share_media) {
            Log.e("onCancel", "onCancel");
        }
    };
    private Button mFenx;
    //监听事件
    private UMAuthListener umAuthListener = new UMAuthListener() {
        //登录成功
        //获取用户信息
        @Override
        public void onComplete(SHARE_MEDIA share_media, int i, Map<String, String> map) {
            Set<String> keySet = map.keySet();
            bundle = new Bundle();
            for (String string : keySet) {
                Log.i("TAG", string);
                if (string.equals("screen_name")) {
                    //获取登录的名字//得到昵称
                    screenname = map.get("screen_name");
                    bundle.putString("screenname", screenname);
                }
                if (string.equals("profile_image_url")) {
                    //获取登录的图片//得到头像
                    iconurl = map.get("profile_image_url");
                    bundle.putString("iconurl", iconurl);
                }
            }
            if (bundle != null) {
                setResult(RESULT_CANCELED, LoginActivity.this.getIntent().putExtras(bundle));
                LoginActivity.this.finish();
            }
        }

        @Override
        public void onError(SHARE_MEDIA platform, int action, Throwable t) {
            Toast.makeText(LoginActivity.this, "Authorize fail", Toast.LENGTH_SHORT).show();
        }

        @Override
        public void onStart(SHARE_MEDIA share_media) {

        }

        @Override
        public void onCancel(SHARE_MEDIA platform, int action) {
            Toast.makeText(LoginActivity.this, "Authorize cancel", Toast.LENGTH_SHORT).show();
        }
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
        initView();
    }

    private void initView() {
        mTel = (EditText) findViewById(R.id.tel);
        mPwd = (EditText) findViewById(R.id.pwd);
        mLogin = (Button) findViewById(R.id.login);
        mLogin.setOnClickListener(this);
        mReg = (Button) findViewById(R.id.reg);
        mReg.setOnClickListener(this);
        mQq = (ImageView) findViewById(R.id.qq);
        mQq.setOnClickListener(this);
        mWeixin = (ImageView) findViewById(R.id.weixin);
        mWeixin.setOnClickListener(this);
        mWeobi = (ImageView) findViewById(R.id.weobi);
        mWeobi.setOnClickListener(this);
        mFenx = (Button) findViewById(R.id.fenx);
        mFenx.setOnClickListener(this);
        loginPersenter = new LoginPersenter(this);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            default:
                break;
            case R.id.login:
                String mobile = mTel.getText().toString();
                String password = mPwd.getText().toString();
                loginPersenter.login(mobile, password);
                break;
            case R.id.reg:
                Intent intent = new Intent(LoginActivity.this, RegisterActivity.class);
                startActivity(intent);
                break;
            case R.id.qq:
                UMShareAPI.get(this).getPlatformInfo(LoginActivity.this, SHARE_MEDIA.QQ, umAuthListener);
                break;
            case R.id.weixin:
                break;
            case R.id.weobi:
                break;
            case R.id.fenx:
                //分享
                new ShareAction(LoginActivity.this).withMedia(new UMWeb("http://www.baidu.com")).setDisplayList
                        (SHARE_MEDIA.WEIXIN, SHARE_MEDIA.WEIXIN_CIRCLE, SHARE_MEDIA.QQ, SHARE_MEDIA.QZONE)
                        .setCallback(umShareListener)
                        .open();
                break;
        }
    }

    @Override
    protected void onPause() {
        super.onPause();
        MobclickAgent.onPause(this);
    }

    @Override
    protected void onResume() {
        super.onResume();
        MobclickAgent.onResume(this);
    }

    @Override
    public void onFailed(String str) {
        Toast.makeText(this, str, Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onSuccess(Object o) {
        if (bundle != null) {
            setResult(RESULT_CANCELED, this.getIntent().putExtras(bundle));
            LoginActivity.this.finish();
        }
    }
}
如果想把值回传给fragment,在fragment写以下代码:

跳转:fragment--->Activity.finish()--->fragment   ...从哪跳回哪去

Intent Intent = new Intent(getActivity(), LoginActivity.class);
startActivityForResult(Intent, Activity.RESULT_FIRST_USER);

重写此方法

public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == Activity.RESULT_FIRST_USER) {
        if (resultCode == RESULT_CANCELED) {
            bundle = data.getExtras();
            Glide.with(getContext()).load(bundle.getString("iconurl")).into(mYicon);
            mNick.setText(bundle.getString("screenname"));

        }
    }
}
在Activity中第三方登录监听里获取个人信息方法写以下代码
 Set<String> keySet = map.keySet();
            bundle = new Bundle();
            for (String string : keySet) {
                Log.i("TAG", string);
                if (string.equals("screen_name")) {
                    //获取登录的名字//得到昵称
                    screenname = map.get("screen_name");
                    bundle.putString("screenname", screenname);
                }
                if (string.equals("profile_image_url")) {
                    //获取登录的图片//得到头像
                    iconurl = map.get("profile_image_url");
                    bundle.putString("iconurl", iconurl);
                }
            }
            if (bundle != null) {
                setResult(RESULT_CANCELED, LoginActivity.this.getIntent().putExtras(bundle));
                LoginActivity.this.finish();
            }



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Flutter中使用友盟分享,首先需要在项目中添加友盟分享的插件。可以使用flutter_umeng_share插件,它提供了友盟分享的各种功能。 1. 在pubspec.yaml文件中添加依赖: ``` dependencies: flutter_umeng_share: ^2.0.0 ``` 2. 在项目中集成友盟分享SDK: 在Flutter项目的MainActivity.java文件中,添加以下代码: ``` import com.umeng.socialize.UMShareAPI; public class MainActivity extends FlutterActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); GeneratedPluginRegistrant.registerWith(this); UMShareAPI.get(this);//添加这一行 } } ``` 3. 初始化友盟分享SDK: 在项目中的main.dart文件中,添加以下代码: ``` import 'package:flutter_umeng_share/flutter_umeng_share.dart'; void main() async { WidgetsFlutterBinding.ensureInitialized(); await FlutterUmengShare.init( androidKey: 'your_umeng_android_app_key', iosKey: 'your_umeng_ios_app_key'); runApp(MyApp()); } ``` 其中,'your_umeng_android_app_key'和'your_umeng_ios_app_key'需要替换为你自己的友盟App Key。 4. 使用友盟分享: ``` import 'package:flutter_umeng_share/flutter_umeng_share.dart'; //分享文本 FlutterUmengShare.shareText('This is a test.'); //分享图片 FlutterUmengShare.shareImage(imagePath: 'image_path', text: 'This is a test.'); //分享链接 FlutterUmengShare.shareWeb( url: 'https://www.example.com', title: 'This is a test.', description: 'This is a test.', thumb: 'thumb_image_path'); ``` 以上就是在Flutter中使用友盟分享的基本步骤。你可以根据自己的需求,选择更多的分享方式,例如分享音乐、视频等。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值