flutterupushplugin 0.0.1 flutterupushplugin: ^0.0.1 copied to clipboard
A new Flutter plugin.
UmengPush Flutter Plugin #
安装 #
在工程 pubspec.yaml 中加入 dependencies
dependencies:
flutterupushplugin: ^0.0.1
配置 #
Android: #
第一步: #
在 android/app/build.gradle
中添加下列代码:
注意manifestPlaceholders
里面的值格式一定是:@xxxxxx,@不能省略,省略了就会注册失败。
android: {
....
defaultConfig {
applicationId "替换成自己应用 ID"
...
manifestPlaceholders = [
UMENG_APPKEY : "@替换成自己umeng appkey",
UMENG_MESSAGE_SECRET : "@替换成自己umeng message secret",
UMENG_CHANNEL : "替换成自己渠道名称",
XIAOMI_ID : "@替换成自己XIAOMI_ID",
XIAOMI_KEY : "@替换成自己XIAOMI_KEY",
MEIZU_APPID : "@替换成自己MEIZU_APPID",
MEIZU_APPKEY : "@替换成自己MEIZU_APPKEY",
HUAWEI_APPID : "@替换成自己HUAWEI_APPID",
OPPO_KEY : "@替换成自己OPPO_KEY",
OPPO_SECRET : "@替换成自己 OPPO_SECRET"
]
}
}
如果没有申请某个厂商通道,就不用配置,例如:没有申请OPPO推送
android: {
....
defaultConfig {
applicationId "替换成自己应用 ID"
...
manifestPlaceholders = [
UMENG_APPKEY : "@替换成自己umeng appkey",
UMENG_MESSAGE_SECRET : "@替换成自己umeng message secret",
UMENG_CHANNEL : "替换成自己渠道名称",
XIAOMI_ID : "@替换成自己XIAOMI_ID",
XIAOMI_KEY : "@替换成自己XIAOMI_KEY",
MEIZU_APPID : "@替换成自己MEIZU_APPID",
MEIZU_APPKEY : "@替换成自己MEIZU_APPKEY",
HUAWEI_APPID : "@替换成自己HUAWEI_APPID",
//这里去掉了OPPO配置
]
}
}
第二步: #
1.主项目的启动类一定要要继承 UPushMainActivty
,例如:
public class MainActivity extends UPushMainActivty {
}
2.自定义Recevier组件受魅族接入方式限制,必须在包名目录实现一个自定义Recevier,继承自MeizuPushReceiver,例如:
public class MeizuTestReceiver extends MeizuPushReceiver {
}
然后在AndroidManifest.xml中配置该Recevier,例如:
<!--魅族push应用定义消息receiver声明 -->
<receiver android:name="${applicationId}.MeizuTestReceiver">
<intent-filter>
<!-- 接收push消息 -->
<action android:name="com.meizu.flyme.push.intent.MESSAGE" />
<!-- 接收register消息 -->
<action android:name="com.meizu.flyme.push.intent.REGISTER.FEEDBACK" />
<!-- 接收unregister消息-->
<action android:name="com.meizu.flyme.push.intent.UNREGISTER.FEEDBACK" />
<!-- 兼容低版本Flyme3推送服务配置 -->
<action android:name="com.meizu.c2dm.intent.REGISTRATION" />
<action android:name="com.meizu.c2dm.intent.RECEIVE" />
<category android:name="${applicationId}"></category>
</intent-filter>
</receiver>
3. 厂商对后台进程做了诸多限制。若使用一键清理,应用的channel进程被清除,将接收不到推送。为了增加推送的送达率,接入厂商托管弹窗功能。通知将由厂商系统托管弹出,点击通知栏将跳转到指定的Activity。该Activity需继承自UPushOffLineNotificationActivity,例如: #
public class MipushTestActivity extends UPushOffLineNotificationActivity {
}
4.做SDK代码初始化工作,所以自定义的Application需集成 UPushApplication,例如: #
public class MyApplication extends UPushApplication {
}
然后在AndroidManifest.xml中配置该MyApplication,例如:
<manifest>
...
<application
android:name="替换成自己应用的包名.MyApplication"
>
</manifest>