Unity接SDK - 极光推送

2021.09.09记录,2023发布,如有不对,还请包含。发晚了

如果想看Android原生接入JPush - SDK,移步Android原生集成JPush SDK_jpush android sdk v4.7.2

极光推送 - 接入

版本:

  •     Unity 2020.3.10f1
  •     JPush - Unity  3.2.0

官方插件:GitHub - jpush/jpush-unity3d-plugin: JPush's officially supported Unity3d plugin (Android & iOS). 极光推送官方支持的 Unity3d 插件(Android & iOS)。

下载Zip压缩包解压,然后把Plugins文件及其子文件全部复制到Unity的Assets下:

先做一件事,打开我们的AndroidManifest文件,然后更改文件内容,把包名全部替换为工程包名,然后替换其中的APPKEY为官网申请相对应软件的APPKEY值。

Unity接SDK - 极光推送_第1张图片Unity接SDK - 极光推送_第2张图片



  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  
  
  
  
  

  
    
    
    
      
        

        
      

      
    
    
    
    
    
    
      
        

        
        
      
    
    
    
    
      
        
        
        
        
      
    
    
    
    
    
    
      
        

        
      
    
    
    
    
    
      
        
        
        
      
      
        
        
      
      
      
        
        

        
      
    
    
    
    
    
      
        

        
      
    
    
    
      
        

        
      
    
    
    
    
    
      
        
      
    
    
    
    
    
    
    
    
    
    
  


还有一个坑记录一下,就是Unity需要设置AndroidManifest为自定模式,然后选择我们更改后的文件,不然打包出来程序启动后,JPush会提示各种问题,总结下来就是一个问题:包名不一致。

Unity接SDK - 极光推送_第3张图片

 

至此,JPushSKD相关内容已全部放入到Unity


接下来我们要开始写代码,注册事件:

Push官网推荐我们在开发阶段中,在Init前开启调试模式,所以我们调用JPushBinding.SetDebug(true);

 紧接着我们初始化,参数是游戏场景中一个拥有唯一名字的物体,用来接收JPush传递的参数。

Unity接SDK - 极光推送_第4张图片

接着我们去JPush官网开始推送消息

Unity与原生交互的同学就知道了,原生会通过我们发送的对应物体名字,找到其中函数,在函数被触发后,再次调用Unity相关物体下的对应函数。

Unity接SDK - 极光推送_第5张图片

using JPush;
using UnityEngine;

public class Routation : MonoBehaviour
{
    void Start()
    {
        JPushBinding.SetDebug(true);
        JPushBinding.Init(this.name);
    }
    // 开发者自己处理由 JPush 推送下来的消息。
    void OnReceiveMessage(string jsonStr)
    {
        Debuger.Log("recv----message-----" + jsonStr);
    }

    /** 接收到的内容格式为如下内容:
    *  {
    *      "msgid":"xxxxxxxxxxxxxxxx"
    *      "extras":
    *      {      
    *          "key1": "value1"
    *          "key2": "value2"
    *      }
    *      "title":"相关标题"
    *      "content":"相关内容"
    *  }      
    *  
    *  我们常用到的函数为:
    *   OnReceiveNotification
    *   OnOpenNotification
    *   
    *   在一些高级应用中,我们会触发其他函数:
    *   OnJPushTagOperateResult
    *   OnJPushAliasOperateResult
    *   OnGetRegistrationId
    *   OnMobileNumberOperatorResult
    */
    void OnReceiveNotification(string jsonStr)
    {
        Debuger.Log("recv---notification---" + jsonStr);
    }

    void OnOpenNotification(string jsonStr)
    {
        Debuger.Log("recv---openNotification---" + jsonStr);
    }

    /// 
    /// JPush 的 tag 操作回调。
    /// 
    /// 操作结果,为 json 字符串。
    void OnJPushTagOperateResult(string result)
    {
        Debuger.Log("JPush tag operate result: " + result);
    }

    /// 
    /// JPush 的 alias 操作回调。
    /// 
    /// 操作结果,为 json 字符串。
    void OnJPushAliasOperateResult(string result)
    {
        Debuger.Log("JPush alias operate result: " + result);
    }

    void OnGetRegistrationId(string result)
    {
        Debuger.Log("JPush on get registration Id: " + result);
    }

    void OnMobileNumberOperatorResult(string result)
    {
        Debuger.Log("JPush On Mobile Number Operator Result: " + result);
    }
}

接着打包发布,然后查看结果就好。


  • 博客杂货铺
  • GoF23 种设计模式的分类和功能

你可能感兴趣的:(Unity,unity,游戏引擎,JPush,SDK,极光推送)