帖子
帖子
用户
博客
课程
1234下一页
返回列表 发新帖
37
帖子
1
勋章
257
Y币
HMS Core 也是最新版本
216
帖子
5
勋章
5911
Y币
雷龙123 发表于 2021-9-14 16:45
HMS Core 也是最新版本

那应该是阿里那边的问题了。你可以咨询下阿里技术,

目前阿里推送的版本是
alicloud-android-third-push-huawei-3.4.0.aar

华为的对接版本是

push-5.0.4.304
37
帖子
1
勋章
257
Y币
52yaoer 发表于 2021-9-14 16:47
那应该是阿里那边的问题了。你可以咨询下阿里技术,

目前阿里推送的版本是

好的谢谢!
216
帖子
5
勋章
5911
Y币
WX20210914-172324@2x.png

https://**.**/post/6996553272370659364  你好,你看下是不是这个原因,阿里云提交工单昨天到现在就会了一句话,我试了去年12月左右发的版本华为手机离线是可以收到推送的,(今年2月底的版本好像也收不到当时还和融云插件冲突)
216
帖子
5
勋章
5911
Y币
成都电视发展有限公司 发表于 2021-9-15 14:22
https://**.**/post/6996553272370659364  你好,你看下是不是这个原因,阿里云提交工单昨天到现在就 ...

alicloud-android-third-push-huawei-3.4.0.aar

就是实现了这样的注册逻辑的

  1. //
  2. // Source code recreated from a .class file by IntelliJ IDEA
  3. // (powered by Fernflower decompiler)
  4. //

  5. package com.alibaba.sdk.android.push.huawei;

  6. import android.app.Application;
  7. import android.content.Context;
  8. import android.content.pm.ApplicationInfo;
  9. import android.os.Build;
  10. import android.os.Handler;
  11. import android.os.Looper;
  12. import android.os.Build.VERSION;
  13. import android.text.TextUtils;
  14. import com.alibaba.sdk.android.push.impl.HuaweiMsgParseImpl;
  15. import com.alibaba.sdk.android.push.register.ThirdPushManager;
  16. import com.alibaba.sdk.android.push.register.ThirdPushManager.ThirdPushReportKeyword;
  17. import com.alibaba.sdk.android.push.utils.SysUtils;
  18. import com.alibaba.sdk.android.push.utils.ThreadUtil;
  19. import com.huawei.hms.aaid.HmsInstanceId;
  20. import com.taobao.accs.utl.ALog;

  21. public class HuaWeiRegister {
  22.     private static final String TAG = "MPS:HuaWeiRegister";
  23.     public static boolean isChannelRegister = false;

  24.     public HuaWeiRegister() {
  25.     }

  26.     public static boolean register(Application application) {
  27.         return registerBundle(application, false);
  28.     }

  29.     public static boolean registerBundle(final Application application, boolean channelRegister) {
  30.         try {
  31.             isChannelRegister = channelRegister;
  32.             if (!isChannelRegister && !SysUtils.isMainProcess(application)) {
  33.                 ALog.e("MPS:HuaWeiRegister", "register not in main process, return", new Object[0]);
  34.                 return false;
  35.             }

  36.             if (checkDevice() && VERSION.SDK_INT >= 17) {
  37.                 ThirdPushManager.registerImpl(new HuaweiMsgParseImpl());
  38.                 Handler handler = new Handler(Looper.getMainLooper());
  39.                 handler.postDelayed(new Runnable() {
  40.                     public void run() {
  41.                         ALog.i("MPS:HuaWeiRegister", "register begin isChannel:" + HuaWeiRegister.isChannelRegister, new Object[0]);
  42.                         HuaWeiRegister.getToken(application.getApplicationContext());
  43.                     }
  44.                 }, 5000L);
  45.                 return true;
  46.             }

  47.             ALog.i("MPS:HuaWeiRegister", "register checkDevice false", new Object[0]);
  48.         } catch (Throwable var3) {
  49.             ALog.e("MPS:HuaWeiRegister", "register", var3, new Object[0]);
  50.         }

  51.         return false;
  52.     }

  53.     private static void getToken(final Context context) {
  54.         ThreadUtil.getExecutor().execute(new Runnable() {
  55.             public void run() {
  56.                 try {
  57.                     ApplicationInfo appInfo = context.getPackageManager().getApplicationInfo(context.getPackageName(), 128);
  58.                     String value = appInfo.metaData.getString("com.huawei.hms.client.appid");
  59.                     String appId = "";
  60.                     if (!TextUtils.isEmpty(value)) {
  61.                         appId = value.replace("appid=", "");
  62.                     }

  63.                     ALog.i("MPS:HuaWeiRegister", "onToken", new Object[]{"appId", appId});
  64.                     String token;
  65.                     if (TextUtils.isEmpty(appId)) {
  66.                         token = HmsInstanceId.getInstance(context).getToken();
  67.                     } else {
  68.                         token = HmsInstanceId.getInstance(context).getToken(appId, "HCM");
  69.                     }

  70.                     if (!TextUtils.isEmpty(token)) {
  71.                         ALog.i("MPS:HuaWeiRegister", "onToken", new Object[]{"token", token});

  72.                         try {
  73.                             ThirdPushManager.reportToken(context, ThirdPushReportKeyword.HUAWEI.thirdTokenKeyword, token);
  74.                         } catch (Exception var7) {
  75.                             var7.printStackTrace();
  76.                         }
  77.                     }
  78.                 } catch (Exception var8) {
  79.                     ALog.e("MPS:HuaWeiRegister", "getToken failed.", var8, new Object[0]);

  80.                     try {
  81.                         ThirdPushManager.reportToken(context, ThirdPushReportKeyword.HUAWEI.thirdTokenKeyword, "");
  82.                     } catch (Exception var6) {
  83.                         var6.printStackTrace();
  84.                     }
  85.                 }

  86.             }
  87.         });
  88.     }

  89.     private static boolean checkDevice() {
  90.         boolean result = false;
  91.         if (Build.BRAND.equalsIgnoreCase("huawei") || Build.BRAND.equalsIgnoreCase("honor")) {
  92.             result = true;
  93.         }

  94.         return result;
  95.     }
  96. }
复制代码


37
帖子
1
勋章
257
Y币
52yaoer 发表于 2021-9-15 19:23
alicloud-android-third-push-huawei-3.4.0.aar

就是实现了这样的注册逻辑的

你好,我简单测试了下,下载官方插件开发包,然后集成是能收到离线推送的
37
帖子
1
勋章
257
Y币
52yaoer 发表于 2021-9-15 19:23
alicloud-android-third-push-huawei-3.4.0.aar

就是实现了这样的注册逻辑的

package com.example.modulePush;
import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.content.Intent;
import android.graphics.Color;
import android.os.Build;
import android.os.Vibrator;
import android.view.Gravity;
import android.view.ViewGroup;
import android.view.animation.Animation;
import android.view.animation.TranslateAnimation;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;


import com.uzmap.pkg.uzcore.UZWebView;
import com.uzmap.pkg.uzcore.uzmodule.ModuleResult;
import com.uzmap.pkg.uzcore.uzmodule.UZModule;
import com.uzmap.pkg.uzcore.uzmodule.UZModuleContext;



import android.app.Application;
import android.content.Context;
import android.util.Log;
import com.alibaba.sdk.android.push.CloudPushService;
import com.alibaba.sdk.android**.**monCallback;
import com.alibaba.sdk.android.push.noonesdk.PushServiceFactory;

import static android.content.ContentValues.TAG;






import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import com.alibaba.sdk.android.push.CloudPushService;
import com.alibaba.sdk.android**.**monCallback;
import com.alibaba.sdk.android.push.huawei.HuaWeiRegister;


import java.lang.reflect.Method;


public class APIModulePush extends UZModule {
    public APIModulePush(UZWebView webView) {
        super(webView);

    }

    public void jsmethod_init(final UZModuleContext moduleContext){
        initCloudChannel(moduleContext.getContext());
        JSONObject ret = new JSONObject();
        moduleContext.success(ret, true);
    }
    public static Application getApplicationInner() {
        try {
            Class<?> activityThread = Class.forName("android.app.ActivityThread");

            Method currentApplication = activityThread.getDeclaredMethod("currentApplication");
            Method currentActivityThread = activityThread.getDeclaredMethod("currentActivityThread");

            Object current = currentActivityThread.invoke((Object)null);
            Object app = currentApplication.invoke(current);
            return (Application)app;
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }

    /**
     * 初始化云推送通道
     * @param applicationContext
     */
    private void initCloudChannel(Context applicationContext) {

        PushServiceFactory.init(applicationContext);
        CloudPushService pushService = PushServiceFactory.getCloudPushService();
        pushService.register(applicationContext, new CommonCallback() {
            @Override
            public void onSuccess(String response) {
                Log.d(TAG, "********************\ninit cloudchannel success\n*******************");
            }
            @Override
            public void onFailed(String errorCode, String errorMessage) {
                Log.d(TAG, "init cloudchannel failed -- errorcode:" + errorCode + " -- errorMessage:" + errorMessage);
            }
        });

        pushService.addAlias("221384", new CommonCallback() {
            @Override
            public void onSuccess(String s) {
                Log.d(TAG, "221384 Success");
            }

            @Override
            public void onFailed(String errorCode, String errorMsg) {
                Log.d(TAG, "221384 Failed");
            }
        });


        createNotificationChannel(applicationContext);
        HuaWeiRegister.register(getApplicationInner());




    }


    private void createNotificationChannel(Context applicationContext) {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            NotificationManager mNotificationManager = (NotificationManager) applicationContext.getSystemService(Context.NOTIFICATION_SERVICE);
            // 通知渠道的id
            String id = "11";
            // 用户可以看到的通知渠道的名字.
            CharSequence name = "notification channel";
            // 用户可以看到的通知渠道的描述
            String description = "notification description";
            int importance = NotificationManager.IMPORTANCE_HIGH;
            NotificationChannel mChannel = new NotificationChannel(id, name, importance);
            // 配置通知渠道的属性
            mChannel.setDescription(description);
            // 设置通知出现时的闪灯(如果 android 设备支持的话)
            mChannel.enableLights(true);
            mChannel.setLightColor(Color.RED);
            // 设置通知出现时的震动(如果 android 设备支持的话)
            mChannel.enableVibration(true);
            mChannel.setVibrationPattern(new long[]{100, 200, 300, 400, 500, 400, 300, 200, 400});
            //最后在notificationmanager中创建该通知渠道
            Log.d(TAG, "notification 11");
            mNotificationManager.createNotificationChannel(mChannel);
            Log.d(TAG, "\n\n通道初始化完成\n\n");
        }
    }
}


微信截图_20210918175425.png
216
帖子
5
勋章
5911
Y币
一样的。插件也是这样实现的逻辑的

22222222.png
216
帖子
5
勋章
5911
Y币
雷龙123 发表于 2021-9-22 11:53
你好,我新建应用,然后只装力alipush插件,配置好参数,华为还是同样问题

2021-09-22 11:45:12.753 281 ...

是用的最新插件版本?
1234下一页
您需要登录后才可以回帖 登录

本版积分规则