极光征文 | Flutter 推送集成指南

Flutter 在 2018 年可以说非常的火爆,像素级的可控性比 ReactNative 要灵活很多,但是就生态而言还有很长的路要走,就推送而言的相关的插件基本很少,意外的时候 JPush 居然出了官方的推送插件 jpush_flutter。 本文主要介绍在应用中集成 jpush_flutter 这个插件。

安装

在工程 pubspec.yaml 中加入 dependencies

dependencies:
  jpush_flutter: 0.0.8

配置

Android:

/android/app/build.gradle 中添加下列代码:

android: {
  ....
  defaultConfig {
    applicationId "替换成自己应用 ID"
    ...
    ndk {
    //选择要添加的对应 cpu 类型的 .so 库。
    abiFilters 'armeabi', 'armeabi-v7a', 'x86', 'x86_64', 'mips', 'mips64' // 'arm64-v8a',        
    }

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

在 xcode8 之后需要点开推送选项: TARGETS -> Capabilities -> Push Notification 设为 on 状态

到此 jpush_flutter 的推送集成已经完成。

什么这就完了?

是的集成推送就是这么的简单,现在只需要在 dart 代码中引入:

import 'package:jpush_flutter/jpush_flutter.dart';

即可开始工作,插件具体的用法可以参考 api 文档。

One more thing.

如果只是集成教程那这篇文章就太水了,还不如看 Readme 呢。

接下来我们来深入看看 jpush_flutter 插件到底帮我们做了哪些事情?

  • Flutter iOS 使用 Cocoapods 来集成第三方的库, JPush iOS 原生 SDK 支持 Cocoapods 来集成,使用 pod 集成有很多的好处:

    • 可以自动帮我们添加系统依赖库,
    • 自动将 jpush-lib.a 和 jcore-lib.a 和相关头文件添加到工程中,
    • 而且在 jcore 分离后你基本不需要关心几个服务(jpush、jmessage、jshare、janalytics)之间的版本冲突
      也就是说省去了手动将下面类库添加到自己工程这繁琐的动作了


      极光征文 | Flutter 推送集成指南_第1张图片
      image.png
  • Flutter android 使用 gradle 来集成第三方的库。JPush android 支持 jcenter 的方式集成,这同样带来了很多好处:
    先看看手动集成需要做的步骤:


    极光征文 | Flutter 推送集成指南_第2张图片
    image.png

jpush_flutter android 插件内部还会维护一个 AndroidManifest 将极光所需的 service 等配置添加到里面了,所有对于插件用户来说所需要的配置就更少了。
这省去了在 AndroidManifest 中添加如下配置:




    

    
    

    
    
    
    
    
    
    
    
    
    
    

    
     
    
    
    
    
    
    
    


    

        
        
        
            
                
                
                
                
            
        


    
        

        
        
         
             
                 
                 
             
         

         
          

        
        
          
                
                
            
            
                
                
            
            
            
                
                
                
            
        

        
        
            
                
                
                
            
        
        
        
            
                
                
            
        

        
        
        

        
        

        
        
        
        
            
                
                
            
        

        
         
             
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
             
         

        
        
        
        
        
        
        
        
    

对于 iOS 来说还有几个坑是需要注意的:

  • 必须要在 Apple Developer 给应用配置推送功能,创建推送证书 (并且保证 bundle id 与 Apple developer 上的是一致的)如果之前没有接触过推送证书建议看视频来 官方集成视频
  • 必须要在真机上做测试,否则无法收到推送通知。
  • 推送环境需要保持一致,测试环境收不到生成环境的推送推送。

全文完~

「本文为极光征文参赛文章」

你可能感兴趣的:(极光征文 | Flutter 推送集成指南)