30分钟搞定极光sdk安卓客户端接入

1、注册成为极光开发者,极光开发者平台官方网站:https://www.jiguang.cn/


2、登录极光开发者平台,进入开发者服务,创建应用。


填写相关信息,应用icon,应用名称。

创建成功,点击"设置",会查看到应用详细信息,这里,我们需要用到的有AppKey,Master Secret等。


3、下载客户端SDK资源文件,下载地址:https://www.jiguang.cn/downloads/sdk/android,这里选择下载Android SDK。解压之后,文件结构如下图:


4、新建Android Application项目。在项目根路径下新建libs文件夹,并将下载的sdk解压,将libs目录下的jcore-android-1.2.1.jar和jpush-android-3.1.3.jar放入libs目录下,会自动加入到类路径下。


5、配置AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.xxx.hello"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="24"
        android:targetSdkVersion="27" />

    <!-- permission -->
    <permission 
        android:name="com.xxx.hello.permission.JPUSH_MESSAGE"
        android:protectionLevel="signature" />
    <!-- uses-permission -->
    <uses-permission android:name="com.xxx.hello.permission.JPUSH_MESSAGE"/>
    <uses-permission android:name="android.permission.RECEIVE_USER_PRESENT"/>
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.WAKE_LOCK"/>
    <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.VIBRATE"/>
    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.WRITE_SETTINGS"/>
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
    
    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
    <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"/>
    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.GET_TASKS"/>
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <service 
            android:name="cn.jpush.android.service.PushService"
            android:enabled="true"
            android:exported="false">
            <intent-filter>
                <action android:name="cn.jpush.android.intent.REGISTER"/>
                <action android:name="cn.jpush.android.intent.REPORT"/>
                <action android:name="cn.jpush.android.intent.PushService"/>
                <action android:name="cn.jpush.android.intent.PUSH_TIME"/>
            </intent-filter>
        </service>
        <provider 
            android:authorities="com.xxx.hello.DataProvider"
            android:name="cn.jpush.android.service.DataProvider"
            android:exported="true"/>
        <service
             android:name="cn.jpush.android.service.DaemonService"
             android:enabled="true"
             android:exported="true">
             <intent-filter >
                 <action android:name="cn.jpush.android.intent.DaemonService" />
                 <category android:name="com.xxx.hello"/>
             </intent-filter>
         </service>
         <provider
               android:authorities="com.xxx.hello.DownloadProvider"
               android:name="cn.jpush.android.service.DownloadProvider"
               android:exported="true"
           />
          <receiver
            android:name="cn.jpush.android.service.PushReceiver"
            android:enabled="true" >
          <intent-filter android:priority="1000">
                <action android:name="cn.jpush.android.intent.NOTIFICATION_RECEIVED_PROXY" />
                <category android:name="com.xxx.hello"/>
            </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.USER_PRESENT" />
                <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
            </intent-filter>
            <!-- Optional -->
            <intent-filter>
                <action android:name="android.intent.action.PACKAGE_ADDED" />
                <action android:name="android.intent.action.PACKAGE_REMOVED" />
                <data android:scheme="package" />
            </intent-filter>
        </receiver>
        
          <activity
            android:name="cn.jpush.android.ui.PushActivity"
            android:configChanges="orientation|keyboardHidden"
            android:theme="@android:style/Theme.NoTitleBar"
            android:exported="false" >
            <intent-filter>
                <action android:name="cn.jpush.android.ui.PushActivity" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="com.xxx.hello" />
            </intent-filter>
        </activity>
        
          <activity
            android:name="cn.jpush.android.ui.PopWinActivity"
            android:configChanges="orientation|keyboardHidden"
            android:exported="false"
            android:theme="@style/MyDialogStyle">
            <intent-filter>
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="com.xxx.hello" />
            </intent-filter>
        </activity>
        <service
            android:name="cn.jpush.android.service.DownloadService"
            android:enabled="true"
            android:exported="false" >
        </service>
        <receiver android:name="cn.jpush.android.service.AlarmReceiver" />
         <meta-data android:name="JPUSH_CHANNEL" android:value="developer-default"/>
         <meta-data android:name="JPUSH_APPKEY" android:value="c0d8228a8fb1e65ec9794bcb"/>
    </application>

</manifest>

6、在MainActivity.java文件中初始化推送接口,主要代码如下。

@Override
protected void onCreate(Bundle savedInstanceState) {
	super.onCreate(savedInstanceState);
	setContentView(R.layout.activity_main);
	JPushInterface.setDebugMode(true);
	JPushInterface.init(this);
	Log.e("MainActivity", "main activity start ok");
}

7、将相关资源从下载的sdk解压文件中拷贝到项目路径下。

so文件:libs/armeabi,libs/armeabi-v7a,libs/x86_64三个文件夹,放入项目的libs文件夹下。

layout文件:res/layout/jpush_popwin_layout.xml,res/layout/jpush_webview_layout.xml放入项目res/layout目录下。

values文件:res/values/jpush_style.xml放入项目res/values目录下。

drawable文件:res/drawable-hdpi文件夹下的文件放入项目res/drawable-hdpi文件夹下。

8、启动应用,连接手机测试。

logcat下看到应用启动信息。


MainActivity中的日志


9、在开发者平台发送消息给应用。

进入应用管理,选择第二步创建的应用,点击推送,进入推送页面,选择发送通知。


接下来,填写推送内容,并选择推送目标平台Android。


点击页面底部“立即发送”,出现推送对话框。


点击“立即推送”,推送成功,会提示如下:


接下来,查看手机通知栏,正常的情况下,会出现一条消息。


10、恭喜您,已经成功接入极光SDK安卓客户端。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
为了在uniapp中接入极光一键登录,需要进行以下步骤: 1.在极光官网注册并创建应用,获取AppKey和AppSecret。 2.在uniapp项目中安装jpush插件,可以使用以下命令进行安装: ```shell npm install jpush-uniapp --save ``` 3.在App.vue文件中引入jpush插件并初始化: ```javascript import JPush from 'jpush-uniapp' export default { onLaunch: function() { JPush.init() } } ``` 4.在需要使用一键登录的页面中,调用jpush插件的login方法: ```javascript import JPush from 'jpush-uniapp' JPush.login({ appKey: 'yourAppKey', authPageConfig: { authLoginPage: 'yourAuthLoginPage', authLogo: 'yourAuthLogo', authNavHidden: true, authStatusBarHidden: true, authCustom: { privacyOne: ['yourPrivacyUrl1', 'yourPrivacyTitle1'], privacyTwo: ['yourPrivacyUrl2', 'yourPrivacyTitle2'] } } }, (res) => { console.log(res) }) ``` 其中,appKey为在极光官网创建应用时获取的AppKey,authPageConfig为一键登录页面的配置信息,包括登录页、logo、隐私协议等。 5.在Android平台上,需要在AndroidManifest.xml文件中添加以下权限: ```xml <uses-permission android:name="android.permission.READ_PHONE_STATE" /> ``` 6.在iOS平台上,需要在Info.plist文件中添加以下权限: ```xml <key>NSPhotoLibraryUsageDescription</key> <string>需要您的同意,才能访问相册</string> <key>NSCameraUsageDescription</key> <string>需要您的同意,才能访问相机</string> <key>NSMicrophoneUsageDescription</key> <string>需要您的同意,才能访问麦克风</string> <key>NSContactsUsageDescription</key> <string>需要您的同意,才能访问通讯录</string> <key>NSLocationWhenInUseUsageDescription</key> <string>需要您的同意,才能访问位置</string> <key>NSLocationAlwaysUsageDescription</key> <string>需要您的同意,才能访问位置</string> <key>NSLocationAlwaysAndWhenInUseUsageDescription</key> <string>需要您的同意,才能访问位置</string> ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

luffy5459

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值