1. 微信登录

  1. 1.
  2. annotationProcessor 'me.luzhuo.android:lib_compiler:1.0.5-SNAPSHOT'
  3. compileOnly 'me.luzhuo.android:lib_compiler:1.0.5-SNAPSHOT'
  4. implementation 'me.luzhuo.android:lib_tencent:1.1.6-SNAPSHOT'
  5. 2. 该注解可依附于任意Java类上方
  6. @WeixinLogin(applicationId = BuildConfig.APPLICATION_ID, entryTemplete = WechatLoginTemplate.class)
  7. public class App extends Application {
  8. @Override
  9. public void onCreate() {
  10. super.onCreate();
  11. WechatManager.init("wxb546013460427555");
  12. }
  13. }
  14. 3.
  15. public void wechatLogin(View view) {
  16. WechatManager wechat = WechatManager.getInstance(this);
  17. wechat.setOnLoginCallback(new IWechatCallback() {
  18. @Override
  19. public void onSuccess(String successMessage) {
  20. Log.e(TAG, "" + code);
  21. }
  22. @Override
  23. public void onError(String errMessage) {
  24. Log.e(TAG, "" + err);
  25. }
  26. });
  27. wechat.login();
  28. }

2. 微信支付

  1. 1.
  2. annotationProcessor 'me.luzhuo.android:lib_compiler:1.0.5-SNAPSHOT'
  3. compileOnly 'me.luzhuo.android:lib_compiler:1.0.5-SNAPSHOT'
  4. implementation 'me.luzhuo.android:lib_tencent:1.1.6-SNAPSHOT'
  5. 2. 该注解可依附于任意Java类上方
  6. @WeixinPay(applicationId = BuildConfig.APPLICATION_ID, entryTemplete = WechatPayTemplate.class)
  7. public class App extends Application {
  8. @Override
  9. public void onCreate() {
  10. super.onCreate();
  11. WechatManager.init("wxb546013460427555");
  12. }
  13. }
  14. 3.
  15. public void wechatPay(View view) {
  16. WechatManager wechat = WechatManager.getInstance(this);
  17. wechat.setOnPayCallback(new IWechatCallback() {
  18. @Override
  19. public void onSuccess(String successMessage) {
  20. Log.e(TAG, "支付成功");
  21. }
  22. @Override
  23. public void onError(String errMessage) {
  24. Log.e(TAG, "支付失败");
  25. }
  26. });
  27. wechat.pay("1557796771", "wx25205935184438d4a88c93f51146037200", "R2Gw3phu5KMzMWBr", "1590411575", "53C5477A0892BFD2B15627DD5DCE1C8545687CC534A8E09D4365A572C4C54A05");
  28. }

3. 微信分享

只要分享, 都是成功 (不存在失败的情况, 所以没有回调)

  1. 1.
  2. implementation 'me.luzhuo.android:lib_tencent:1.1.6-SNAPSHOT'
  3. implementation 'me.luzhuo.android:lib_core:2.0.1-SNAPSHOT'
  4. // 加载网络图片需要的库 (非必须)
  5. implementation this.rootProject.depsLibs.okhttp
  6. implementation 'me.luzhuo.java.android:lib_network:1.0.2-SNAPSHOT'
  7. 2. 该注解可依附于任意Java类上方
  8. @WeixinLogin(applicationId = BuildConfig.APPLICATION_ID, entryTemplete = WechatLoginTemplate.class)
  9. public class App extends Application {
  10. @Override
  11. public void onCreate() {
  12. super.onCreate();
  13. WechatManager.init("wxb546013460427555");
  14. }
  15. }
  16. 3.
  17. final WechatManager wechat = WechatManager.getInstance(this);
  18. // 分享文本内容
  19. wechat.share(new TextMessage("这是文本分享"), WechatShareWhere.Friend);
  20. // 分享图片
  21. wechat.share(new ImageMessage(this, R.mipmap.image), WechatShareWhere.Friend);
  22. wechat.share(new ImageMessage(this, Environment.getExternalStorageDirectory() + File.separator + "shareimage.jpg" /*内部存储卡*/), WechatShareWhere.Friend);
  23. // 分享音乐
  24. wechat.share(new MusicMessage(this, "http://staff2.ustc.edu.cn/~wdw/softdown/index.asp/0042515_05.ANDY.mp3", "http://www.qq.com", "音乐标题啊", "音乐描述啊", R.mipmap.image), WechatShareWhere.Friend);
  25. // 分享视频
  26. wechat.share(new VideoMessage(this, "https://vdept.bdstatic.com/5846443970506b655764664834687537/35506d4e50576843/e610799b39f3c277bd7e6a2126a1211ce016cf0ceb260b5f5557d606d020bca4c53e7fe1de9a15cbc4e94bf5d6f5fda3f4101f828384ede0865741a81d17e5ae.mp4?auth_key=1594552495-0-0-d893d9d8b6118bdc4e94a62d855ebcc6", "这是标题哟", "这是描述哟", R.mipmap.image), WechatShareWhere.Collect);
  27. // 分享Web页
  28. wechat.share(new WebMessage(this, "http://www.qq.com", "这是标题哟", "这是描述哟", R.mipmap.image), WechatShareWhere.Friend);
  29. // 需要网络封面的, 参考以下案例
  30. // 1. 直接使用okhttp
  31. // 以网路图片作为封面
  32. Request request = new Request.Builder().url("http://b-ssl.duitang.com/uploads/item/201608/29/20160829203548_YHJjV.thumb.700_0.jpeg").build();
  33. OkHttpClient client = new OkHttpClient();
  34. client.newCall(request).enqueue(new Callback() {
  35. @Override
  36. public void onFailure(Call call, IOException e) {
  37. Toast.makeText(MainActivity.this, "图片下载失败", Toast.LENGTH_SHORT).show();
  38. }
  39. @Override
  40. public void onResponse(Call call, Response response) throws IOException {
  41. InputStream inputStream = response.body().byteStream();
  42. Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
  43. wechat.share(new MusicMessage("http://staff2.ustc.edu.cn/~wdw/softdown/index.asp/0042515_05.ANDY.mp3", "http://www.qq.com", "音乐标题啊", "音乐描述啊", bitmap), WechatShareWhere.Friend);
  44. }
  45. });
  46. // 2. 使用 lib_network 库
  47. OKHttpManager okHttpManager = new OKHttpManager();
  48. okHttpManager.getBitmap("http://b-ssl.duitang.com/uploads/item/201608/29/20160829203548_YHJjV.thumb.700_0.jpeg", new IBitmapCallback() {
  49. @Override
  50. public void onSuccess(int i, Bitmap bitmap) {
  51. wechat.share(new MusicMessage("http://staff2.ustc.edu.cn/~wdw/softdown/index.asp/0042515_05.ANDY.mp3", "http://www.qq.com", "音乐标题啊", "音乐描述啊", bitmap), WechatShareWhere.Friend);
  52. }
  53. @Override
  54. public void onError(int i, String s) {
  55. Toast.makeText(MainActivity.this, "下载图片失败", Toast.LENGTH_SHORT).show();
  56. }
  57. });

1. 分享到小程序

分享的App和小程序要在同一账号下, 如果在不同的账号下, 需要对其他主体的小程序进行绑定

  1. /**
  2. * 分享到小程序
  3. */
  4. public void wechatShareMiniProgramObject(View view) {
  5. final String miniId = "gh_d5d3de25a329";
  6. final WechatManager wechat = WechatManager.getInstance(this);
  7. // wechat.share(new MiniProgramObject(this, "http://www.qq.com", WXMiniProgramObject.MINIPTOGRAM_TYPE_RELEASE, miniId, "", "这是标题哟", "这是描述哟", R.mipmap.image), WechatShareWhere.Friend);
  8. wechat.share(new MiniProgramObject(this, miniId, "这是标题哟", "这是描述哟", R.mipmap.image), WechatShareWhere.Friend);
  9. }

4. 混淆

  1. # --- weixin ---
  2. -keep class com.tencent.mm.opensdk.** {*;}
  3. -keep class com.tencent.wxop.** {*;}
  4. -keep class com.tencent.mm.sdk.** {*;}