首页 > 其他分享 >MASA MAUI Plugin (六)集成个推,实现本地消息推送[Android] 篇

MASA MAUI Plugin (六)集成个推,实现本地消息推送[Android] 篇

时间:2022-11-15 14:56:07浏览次数:66  
标签:Java MASA Plugin 绑定 MAUI Android 推送

背景

MAUI的出现,赋予了广大Net开发者开发多平台应用的能力,MAUI 是Xamarin.Forms演变而来,但是相比Xamarin性能更好,可扩展性更强,结构更简单。但是MAUI对于平台相关的实现并不完整。所以MASA团队开展了一个实验性项目,意在对微软MAUI的补充和扩展

项目地址https://github.com/BlazorComponent/MASA.Blazor/tree/main/src/Masa.Blazor.Maui.Plugin

每个功能都有单独的demo演示项目,考虑到app安装文件体积(虽然MAUI已经集成裁剪功能,但是该功能对于代码本身有影响),届时每一个功能都会以单独的nuget包的形式提供,方便测试,现在项目才刚刚开始,但是相信很快就会有可以交付的内容啦。

前言

本系列文章面向移动开发小白,从零开始进行平台相关功能开发,演示如何参考平台的官方文档使用MAUI技术来开发相应功能。

介绍

鉴于现在运营需求的增强,消息推送在Android开发中应用的场景是十分常见,如电商的活动宣传、资讯类产品进行新闻推送等等,所以关于这个功能我就不过多介绍了。面向海外推送业务MAUI有一些集成Google firebase或其他运营商的可用的示例和绑定库可用,但是国内用户无法使用这些,对于国内比较常见的例如极光、个推等,也没用对应的MAUI或者Xamarin的SDK可用,本人联系过官方也无法提供任何技术支持。

但是,这样的困难是无法难倒MASA的开发人员的,所以在各方压力的鞭策下,有了本文,本文以“国内服务提供商个推(https://www.getui.com)的Android 原生SDK”为例,提供Android原生代码到MAUI代码的绑定及实现方式。

思路

Android 的第三方库生态系统非常庞大。 正因为此,使用现有的 Android 库通常比创建一个新的库更合理。其实早在Xamarin的时代,微软已经提供了Android 绑定库(Xamarin)这个项目,实现原理为:创建一个绑定库,该库使用 C# 包装器自动包装库,以便通过 C# 调用来调用 Java 代码,通过使用托管可调用包装器 (MCW) 实现绑定。 MCW 是一个 JNI 桥,在托管代码需要调用 Java 代码时会使用它。 托管可调用包装器还支持对 Java 类型进行子类化以及覆盖 Java 类型的虚拟方法。 同样,每当 Android 运行时 (ART) 代码需要调用托管代码时,它都会通过另一个称为 Android 可调用包装器 (ACW) 的 JNI 桥来实现。 下图说明了此体系结构

在这里插入图片描述

通常情况下,绑定 Android 库(.aar 或 .jar)文件绝非易事;通常它需要花费额外的精力来解决 Java 和 .NET 之间的差异导致的问题。 这些问题会使 MAUI无法绑定 Android 库,并在生成日志中显示为错误消息。

推送功能涉及到的内容非常多,接下来我们只开发最基础的功能,并对此做最精简配置。

开发步骤

一、下载个推Android SDK

个推账号的申请及应用的创建请参考官方文档(个推面向个人开发者,而且我们通过CID发送测试是免费的,无需充值和实名认证)。这里我们着重介绍集成的方法,个推官网的文档示例是使用Maven 方式集成,但是这种方式在MAUI当然无法实现,所以我们需要手动下载SDK对应的aar文件进行手动集成。

maven仓库地址为http://mvn.getui.com/nexus/content/repositories/releases/com/getui

我们需要 gtsdk和gtc,分别下载最新的gtc-3.1.12.0.aargtsdk-3.2.13.0.aar

我是怎么知道需要使用这两个文件呢,因为我下载了官方的Demo然后使用maven集成后在 C:\Users\用户名\.gradle\caches\modules-2\files-2.1\com.getui 目录下载了这两个文件

标签:Java,MASA,Plugin,绑定,MAUI,Android,推送
From: https://www.cnblogs.com/MASA/p/16892402.html

相关文章

  • unplugin-vue-components(按需加载使用的组件)
    作用unplugin-vue-components是由vite-plugin-components重名而来,可以将项目中的组件按需引用,仅注册你使用的组件。//平时我们在页面使用组件<template> <comp/></t......
  • vue-plugin-Pages自动配置路由
    vite-plugin-pages使用安装首先先安装依赖。因为模版里自带了vue-router,所以不需要再安装。cnpmaddvite-plugin-pagesvite-plugin-vue-layouts-D在vite.config......
  • MAUI新生1.2-XAML语法基础:标记扩展{}
    标记扩展,使属性值可以引用其他源的值或对象,比如引用资源字典、引用其它控件的属性值、绑定ViewModel类属性值等。标记扩展的语法有大括号{}和尖括号<>两种方式,但x:Array比......
  • 如何在 .NET MAUI 中加载 json 文件?
    引言:按core传统方式添加AddJsonFile("appsettings.json")在windows平台和ssr工作正常,但是在ios和android无法用这种方式,因为资源生成方式不一样.使用内置资源方......
  • webpack中 loader和plugin的区别
    首先,loader是文件加载器,能够加载资源文件,并对文件进行一些处理,如翻译,压缩 ,最终一起打包到指定的文件中;loader运行在打包项目之前; plugin是插件,plugin赋予了webp......
  • 发布 .NET 7 MAUI / MAUI Blazor 应用到 Windows 应用商店
    .NETMAUI目前仅允许发布MSIX包。创建签名证书发布到本地传送门[https://www.cnblogs.com/densen2014/p/16567384.html]使用VisualStudio2022发布到Windows应......
  • MAUI新生-XAML语法基础:语法入门Element&Property&Event&Command
    一、XAML(MAUI的XAML)和HTML两者相似,都是标签语言(也叫标记)组成的树形文档。每个标签元素,可视为一个对象,通过“键=值”形式的标签属性(Attribute),为对象的属性(Property)、事件......
  • MAUI新生-目录
    MAUI是微软.NET技术栈的跨端UI框架,2022年11月,和.NET7一起正式发布,未来能否和flutter一战?MAUI使用XAML标记语言进行开发,相对HTML而言,更加复杂和繁琐,但功能更加全面严谨。MA......
  • hadoop cdh4 eclipse plugin
    1)downloadeclipse2)解压eclipse3)安装与配置Ant修改/etc/profile文件exportANT_HOME=[path]/apache-ant-1.7.1......
  • spring-boot-maven-plugin插件指定打包目录
    插件配置<plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId>......