新建一个 MAUI Blazor 项目:Masa.Blazor.Maui.Plugin.GeTuiSample, 添加对 Masa.Blazor.Maui.Plugin.GeTuiPushBinding 项目的引用
1、初始化个推 SDK
个推 SDK 的初始化在 MainActivity.OnCreate () 或 MainApplication.OnCreate () 方法中都是可以的,我们这里在 MainActivity 中初始化。修改 Platforms->Android->MainActivity.cs 文件,在 MainActivity 的 OnCreate 事件中添加我们的初始化方法
public class MainActivity : MauiAppCompatActivity{protected override void OnCreate(Bundle savedInstanceState){base.OnCreate(savedInstanceState);Com.Igexin.Sdk.PushManager.Instance.Initialize(this);var cid = Com.Igexin.Sdk.PushManager.Instance.GetClientid(this);System.Diagnostics.Debug.WriteLine($"cid:{cid}");}}
因为我们完成了绑定,所以这里可以使用个推 SDK 中的 Com.Igexin.Sdk 命名空间下的 PushManager 来完成初始化, 初始化方法 Initialize 非常简单,初始化后我们可以通过 GetClientid 方法拿到客户端 ID,方便我们后续在个推平台下发推送测试任务,因为向特定 CID 发送推送是免费的。
2、配置推送服务
继续在 Android 目录下新建推送服务类 DemoPushService
using Android.App;namespace Masa.Blazor.Maui.Plugin.GeTuiSample
{[Service(Process = ":pushservice", Exported = false)]public class DemoPushService : Com.Igexin.Sdk.PushService{}
}
我们只要实现一个继承自 Com.Igexin.Sdk.PushService 的类即可。
注意:服务必须指定 Process = ":pushservice",设置了这行代码,系统就会为该服务创建新的进程,DemoPushService 将运行在这个新的独立的进程,它所在的 apk 依旧运行在原来进程。这样就实现了 Android 使用多进程。 android:exported 是 Android 中的四大组件 Activity,Service,Provider,Receiver 四大组件中都会有的一个属性。 主要作用是:是否支持其它应用调用。 处于安全考虑我们这里设置为 Exported = false,代表不支持其他应用调用。
修改 AndroidManifest.xml 文件
我们在 application 中添加了 xmlns:tools="http://schemas.android.com/tools",作用是在下面的 meta-data 中使用 tools:replace,否则会出现 Android 组件化集成合并 AndroidManifest.xml 的问题,添加 android:label="@string/app_name" 也是为了避免合并问题。 service 表示我们添加的自定义推送类,android:name 的值必须写全命名空间。 GETUI_APPID 部分为个推应用对应的 APPID
我们启动应用,并在个推平台下发一个测试推送
上一篇: 羡慕个性说说感言
下一篇: 妈妈给儿子的生日寄语