海南电网服务方案92.docx
- 文档编号:9231144
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:17
- 大小:163.44KB
海南电网服务方案92.docx
《海南电网服务方案92.docx》由会员分享,可在线阅读,更多相关《海南电网服务方案92.docx(17页珍藏版)》请在冰豆网上搜索。
海南电网服务方案92
海南电网基于安卓/IOS的消息推送平台服务方案
一、技术方案需求:
系统逻辑组网图
Android客户端集成
主要功能
∙保持与服务器的长连接,以便消息能够即时推送到达客户端
∙接收通知与自定义消息,并向开发者App传递相关信息
Android消息推送消息消息流程:
1.海南电网通过web或者调用API将推送通知发送到JPushServer。
2.JPushServer对消息进行存储,调度等一些列处理。
3.JPushServer将通知发送到海南电网接入服务器。
4.海南电网接入服务器将通知发送到集成了JPushSDK的终端应用。
主要特点
∙客户端维持连接占用资源少、耗电低
∙SDK丰富的接口,可定制通知栏提示样式
∙服务器大容量、稳定
集成压缩包内容
∙AndoridManifest.xml
o客户端嵌入SDK参考的配置文件
∙libs/jpush-sdk-release1.x.y.jar
oSDKJava开发包
∙libs/armeabi/libsys1.x.y.so
oSDKnative开发包
∙example
o是一个完整的Android项目,通过这个演示了JPushSDK的基本用法,可以用来做参考。
AndroidSDK版本
目前SDK只支持Android2.1或以上版本的手机系统。
SDK集成步骤
1、导入SDK开发包到你自己的应用程序项目
∙解压缩jpush-sdk_v1.x.y.zip集成压缩包
∙复制 libs/jpush-sdk-release1.x.y.jar到工程libs/目录下
∙复制 libs/armeabi/libsys1.x.y.so到工程libs/armeabi目录下
∙如果您的项目有libs/armeabi-v7a这个目录,请把libsys1.x.y.so也复制一份到这个目录。
2、配置AndroidManifest.xml
根据SDK压缩包里的AndroidManifest.xml样例文件,来配置应用程序项目的AndroidManifest.xml。
主要步骤为:
1.复制备注为"Required"的部分
2.将备注为替换包名的部分,替换为当前应用程序的包名
3.将AppKey替换为在Portal上注册该应用的的Key,例如(9fed5bcb7b9b87413678c407)
xmlversion="1.0"encoding="utf-8"?
>
android=" package="YourPackage" android: versionCode="100" android: versionName="1.0.0" > --Required--> name="YourPackage.permission.JPUSH_MESSAGE"android: protectionLevel="signature"/> --Required--> name="YouPackage.permission.JPUSH_MESSAGE"/> name="android.permission.RECEIVE_USER_PRESENT"/> name="android.permission.INTERNET"/> name="android.permission.WAKE_LOCK"/> name="android.permission.READ_PHONE_STATE"/> name="android.permission.WRITE_EXTERNAL_STORAGE"/> name="android.permission.READ_EXTERNAL_STORAGE"/> name="android.permission.VIBRATE"/> name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/> name="android.permission.ACCESS_NETWORK_STATE"/> --Optional.Requiredforlocationfeature--> name="android.permission.ACCESS_COARSE_LOCATION"/> name="android.permission.ACCESS_COARSE_UPDATES"/> name="android.permission.ACCESS_WIFI_STATE"/> name="android.permission.CHANGE_WIFI_STATE"/> name="android.permission.ACCESS_FINE_LOCATION"/> name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"/> name="android.permission.CHANGE_NETWORK_STATE"/> android: icon="@drawable/ic_launcher" android: label="@string/app_name" android: name="YourApplication"> --Required--> android: name="cn.jpush.android.service.PushService" android: enabled="true" android: exported="false"> name="cn.jpush.android.intent.REGISTER"/> name="cn.jpush.android.intent.REPORT"/> name="cn.jpush.android.intent.PushService"/> name="cn.jpush.android.intent.PUSH_TIME"/> --Required--> android: name="cn.jpush.android.service.PushReceiver" android: enabled="true"> priority="1000"> --since1.3.5--> name="cn.jpush.android.intent.NOTIFICATION_RECEIVED_PROXY"/> --since1.3.5--> name="YourPackage"/> --since1.3.5--> --since1.3.5--> name="android.intent.action.USER_PRESENT"/> name=".conn.CONNECTIVITY_CHANGE"/> name="android.intent.action.PACKAGE_ADDED"/> name="android.intent.action.PACKAGE_REMOVED"/> scheme="package"/> --RequiredSDK核心功能--> android: name="cn.jpush.android.ui.PushActivity" android: theme="@android: style/Theme.Translucent.NoTitleBar" android: configChanges="orientation|keyboardHidden"> name="cn.jpush.android.ui.PushActivity"/> name="android.intent.category.DEFAULT"/> name="YourPackage"/> --RequiredSDK核心功能--> android: name="cn.jpush.android.service.DownloadService" android: enabled="true" android: exported="false"> --RequiredSDK核心功能--> name="cn.jpush.android.service.AlarmReceiver"/> --Required.Forpublishchannelfeature--> --JPUSH_CHANNEL是为了方便开发者统计APK分发渠道。 --> --例如: --> --发到GooglePlay的APK可以设置为google-play;--> --发到其他市场的APK可以设置为xxx-market。 --> --目前这个渠道统计功能的报表还未开放。 --> name="JPUSH_CHANNEL"android: value="developer-default"/> --Required.AppKeycopiedfromPortal--> name="JPUSH_APPKEY"android: value="YourAppKey"/> 3、添加代码 JPushSDK提供的API接口,都主要集中在 cn.jpush.android.api.JPushInterface类里。 基础API ∙init初始化SDK publicstaticvoidinit(Contextcontext) ∙setDebugMode设置调试模式 //Youcanenabledebugmodeindevelopingstate.Youshouldclosedebugmodewhenrelease. publicstaticvoidsetDebugMode(booleandebugEnalbed) 调用示例代码(参考example项目) ∙init只需要在应用程序启动时调用一次该API即可。 ∙以下代码定制一个本应用程序Application类。 需要在AndoridManifest.xml里配置。 请参考上面AndroidManifest.xml片断,或者example项目。 publicclassExampleApplicationextendsApplication{ @Override publicvoidonCreate(){ super.onCreate(); JPushInterface.setDebugMode(true); JPushInterface.init(this); } } 4、测试确认 1.确认所需的权限都已经添加。 如果必须的权限未添加,日志会提示错误。 2.确认AppKey(在Portal上生成的)已经正确的写入Androidmanifest.xml。 3.确认在程序启动时候调用了init(context)接口 4.确认测试手机(或者模拟器)已成功连入网络 o客户端调用init后不久,如果一切正常,应有登录成功的日志信息 5.启动应用程序,在Portal上向应用程序发送自定义消息或者通知栏提示。 o在几秒内,客户端应可收到下发的通知或者正定义消息 如果SDK工作正常,则日志信息会如下图所示: 如图所示,客户端启动分为4步: 1.检查metadata的appKey和channel,如果不存在,则启动失败 2.初始化JPushSDK,检查JNI等库文件的有效性,如果库文件无效,则启动失败 3.检查Androidmanifest.xml,如果有Required的权限不存在,则启动失败 4.连接服务器登录,如果存在网络问题,则登陆失败,或者前面三步有问题,不会启动JPushSDK iOS客户端集成 主要功能 ∙为JPushServer上报DeviceToken,免除开发者管理DeviceToken的麻烦 ∙应用运行时,应用内JPush长连接可以持续地收到推送消息 iOS消息推送消息消息流程: 1.海南电网通过web或者调用API将推送通知发送到JPushServer。 2.JPushServer对消息进行调度,然后根据用户平台注册信息发送到苹果APNS服务器。 3.APNS服务器将通知最终发送到集成了JPushSDK的iOS应用终端。 4.JPushserver同样提供了应用内消息的接收,由于iOS平台的特性APNS可以在应用关闭时收到通知,但应用内消息需要应用开启后才可以收到 主要特点 ∙集成简单 ∙iOSSDK集成后,服务器端向iOS设备推送简单方便 版本 ∙当前提供的SDK使用OpenUDID的方案来确定设备的编号,符合AppStore的上架规定。 集成压缩包内容 包名为JPush-iOS-SDK-[版本号] ∙lib文件夹: 包含头文件APService.h,静态库文件libPushSDK.a 和libPushSDK-Simulator.a,支持的iOS版本为4.3~6.1。 (请注意: 模拟器不能实现APNS,提供libPushSDK-Simulator.a,只是为了避免SDK在模拟器环境下报错,方便开发者使用模拟器调试自己的功能) ∙pdf文件: 开发指南 ∙demo文件夹: 示例 开发环境 ∙建议使用XCode4.5 或以上版本 iOSSDK集成步骤 1、在JPushPortal上创建应用 ∙在JPush的管理Portal上上传证书并创建应用。 如果对APNs证书不太了解请参考iOS证书设置指南 ∙创建成功后自动生成AppKey 用以标识该应用。 2、导入API开发包到应用程序项目 ∙将SDK包解压,在XCode中选择“Addfilesto'Yourprojectname'...”,将解压后的lib子文件夹(包含APService.h、libPushSDK.a和libPushSDK-Simulator.a文件,如果不需要在模拟器中调试,可以丢弃libPushSDK-Simulator.a文件)添加到你的工程目录中。 3、必要的框架 ∙CFNetwork.framework ∙CoreFoundation.framework ∙CoreTelephony.framework ∙SystemConfiguration.framework ∙CoreGraphics.framework ∙Foundation.framework ∙UIKit.framework 4、BuildSettings ∙设置SearchPaths下的UserHeaderSearchPaths和LibrarySearchPaths,比如SDK文件夹(默认为lib)与工程文件在同一级目录下,则都设置为"$(SRCROOT)/[文件夹名称]"即可。 5、创建并配置PushConfig.plist文件 在你的工程中创建一个新的PropertyList文件,并将其命名为PushConfig.plist,填入Portal为你的应用提供的APP_KEY等参数。 { "APS_FOR_PRODUCTION="0"; "CHANNEL"="Publishchannel"; "APP_KEY"="AppKeycopiedfromJPushPortalapplication"; } ∙CHANNEL o指明应用=E7__序包的下载渠道,为方便分渠道统计。 根据你的需求自行定义即可。 ∙APP_KEY o在管理Portal上创建应用时自动生成的(AppKey)用以标识该应用。 请确保应用内配置的AppKey与第1步在Portal上创建应用时生成的AppKey一致,AppKey可以在应用详情中查询。 ∙APS_FOR_PRODUCTION o1.3.1版本新增,表示应用是否采用生产证书发布(Ad_Hoc或APPStore),0(默认值)表示采用的是开发者证书,1表示采用生产证书发布应用。 请注意此处配置与WebPortal应用环境设置匹配。 ∙在1.2.2或之前版本的配置文件中,有TEST_MODE这个键,新版的SDK不再使用,可以将它删除。 5、添加代码 API APIs主要集中在 APService接口类里。 @interfaceAPService: NSObject //initPush +(void)setupWithOption: (NSDictionary*)launchingOption; //registernotificationtype +(void)registerForRemoteNotificationTypes: (UIRemoteNotificationType)types; //uploaddevicetoken +(void)registerDeviceToken: (NSData*)deviceToken; //handlenotificationrecieved +(void)handleRemoteNotification: (NSDictionary*)remoteInfo; @end 调用代码 监听系统事件,相应地调用JPushSDK提供的API来实现功能。 以下3个事件监听与调用JPushSDKAPI都是必须的。 请直接复制如下代码块里,注释为"Required"的行,到你的应用程序代理类里相应的监听方法里。 -(BOOL)application: (UIApplication*)applicationdidFinishLaunchingWithOptions: (NSDictionary*)launchOptions { self.window=[[[UIWindowalloc]initWithFrame: [[UIScreenmainScreen]bounds]]autorelease]; self.window.backgroundColor=[UIColorwhiteColor]; [self.windowmakeKeyAndVisible]; //Required [APServiceregisterForRemoteNotificationTypes: (UIRemoteNotificationTypeBadge| UIRemoteNotificationTypeSound| UIRemoteNotificationTypeAlert)]; //Required [APServicesetupWithOption: launchOptions]; returnYES; } -(void)application: (UIApplication*)applicationdidRegisterForRemoteNotificationsWithDeviceToken: (NSData*)deviceToken{ //Required [APServiceregisterDeviceToken: deviceToken]; } -(void)application: (UIApplication*)applicationdidReceiveRemoteNotification: (NSDictionary*)userInfo{ //Required [APServicehandleRemoteNotification: userInfo]; } 监听通知 API里面提供了下面5种类型的通知: externNSString*constkAPNetworkDidSetupNotification;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 海南 电网 服务 方案 92