让代码更简单

极光推送PHP服务器端发送安卓APP客户端接收

重要:本文最后更新于2022-11-08 19:25:05,某些文章具有时效性,若有错误或已失效,请在下方留言或联系代码狗

五一放了8天假,本来打算更新下主题的,结果迷上了美剧,偏偏这美剧还TM特别长,看完一季又一季,搞得我现在都没看完,最终导致主题更新了一点小功能,下次再发布吧。上班第一天写了一天代码,分享下今天上班用到的东西。极光推送PHP服务器端发送安卓APP客户端接收,简单来说就是一个消息推送,大佬别说要自己部署推送服务的话,不觉得浪费成本吗?所以还是使用第三方推送服务吧。

极光推送PHP服务器端发送安卓APP客户端接收

极光推送PHP服务器端发送安卓APP客户端接收

为什么选择极光推送?

我很懒,谁简单谁方便谁的文档容易看懂我就用谁的。综合比较后,只有极光推送符合我的要求,腾讯百度这种大公司的文档实在是伤透脑筋,果断放弃。

安卓客户端集成极光推送SDK

现在的Android studio比eclipse强大太多了,只需要添加云端仓库中的依赖,编译器就会自动集成SDK到你的项目中,所以第一步,在 module 的 gradle 中添加依赖。

复制
implementation 'cn.jiguang.sdk:jpush:3.2.0'
implementation 'cn.jiguang.sdk:jcore:1.2.7'

仅仅如此还不够,还需要AndroidManifest 的替换变量。

复制
defaultConfig {
    applicationId "com.zdhcsc.daimadog.hl" //JPush上注册的包名.

    ndk {
        //选择要添加的对应cpu类型的.so库。
        abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a'
        // 还可以添加 'x86', 'x86_64', 'mips', 'mips64'
    }

    manifestPlaceholders = [
            JPUSH_PKGNAME: applicationId, //JPush上注册的包名.
            JPUSH_APPKEY : "appkey", //JPush上注册的包名对应的appkey.
            JPUSH_CHANNEL: "channel", //暂时填写默认值即可.
    ]
}

然后添加广播和权限,用来接收消息通知。

复制
<receiver
    android:name=".JPushReceiver"
    android:enabled="true">
    <intent-filter>

        <!-- Required 用户注册SDK的intent -->
        <action android:name="cn.jpush.android.intent.REGISTRATION" />
        <!-- Required 用户接收SDK消息的intent -->
        <action android:name="cn.jpush.android.intent.MESSAGE_RECEIVED" />
        <!-- Required 用户接收SDK通知栏信息的intent -->
        <action android:name="cn.jpush.android.intent.NOTIFICATION_RECEIVED" />
        <!-- Required 用户打开自定义通知栏的intent -->
        <action android:name="cn.jpush.android.intent.NOTIFICATION_OPENED" />
        <!-- 接收网络变化 连接/断开 since 1.6.3 -->
        <action android:name="cn.jpush.android.intent.CONNECTION" />

        <category android:name="com.zdhcsc.daimadog.hl" />
    </intent-filter>
</receiver>

在你的activity.java中使用如下代码初始化极光推送并注册用户标签。

复制
JPushInterface.init(Flash.this);
JPushInterface.setTags(this, 0, setUserTags());
private static Set<String> setUserTags() {
    //添加标签用户(获取登录userid较为常见)
    Set<String> tags = new HashSet<>();
    tags.add("userid");
    tags.add("all");
    return tags;
}

到此安卓APP客户端的极光推送集成完毕,去极光推送后台推送一天消息到你注册的标签用户吧!

PHP发送推送消息

安卓客户端只能接受消息,并不能主动发起消息推送。为了解决这个主动推送的问题,极光推送官方给了使用PHP来发起主动推送的方案,我试了下效果不错。

首先需要下载极光推送PHPSDK到你的服务器中,然后使用下面的代码即可推送消息。

复制
<?php
require 'jpush/autoload.php';
use JPush\Client as JPush;
$app_key="key";//后台获取
$master_secret="secret";//后台获取
$client = new JPush($app_key, $master_secret);
$pusher = $client->push();
$pusher->setPlatform('all');
//$pusher->addAllAudience();
$pusher->addTag('userid');
$pusher->setNotificationAlert('Hello, 推送测试');
try {
    $pusher->send();
} catch (\JPush\Exceptions\JPushException $e) {
    // try something else here
    print $e;
}
?>

注意引用路径,根据自己需求修改。并且需要注意文件编码问题,建议使用UTF-8无B模式!通过浏览器访问一下,你的APP将收到一条推送消息!

感觉很棒!可以赞赏支持我哟~

2 打赏

评论 (2)

登录后评论
曾经追漫威,花了好几天才看一遍
我也想看美剧,没时间啊。
QQ咨询 邮件咨询 狗哥推荐