在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称:raix/push开源软件地址:https://github.com/raix/push开源编程语言:JavaScript 98.6%开源软件介绍:DEPRECATED: This package is no longer maintainedraix:push Push notifications
Status:
ContributingWe are using semantic-release following the AngularJS Commit Message Conventions - Following this pattern will result in better versioning, better changelog and shorter release cycle. Updates For Android 8.0Meteor must be version 1.6.1 Cordova Android must be version 6.3.0 Cordova IOS must be version 4.5.0 Meteor release 1.6.1 https://docs.meteor.com/changelog.html#changes-10 "The cordova-lib package has been updated to version 7.1.0, cordova-android has been updated to version 6.4.0 (plus one additional commit), and cordova-ios has been updated to version 4.5.4" To verify the correct installation ADD [email protected] to your cordova plugins file. After your app builds, Make the following changes to your build.gradle file. The simpliest solution to modify this file is in android studio. The correct gradle file to modify has this line at the begining of the file: apply plugin: 'com.android.application' Add this two your dependencies: classpath 'com.google.gms:google-services:4.1.0' // I added both of these
classpath 'com.google.firebase:firebase-core:11.0.1' // I added both of these At the end of your build.gradle file add: apply plugin: 'com.google.gms.google-services' In case your run into errors with conflicting google libraries add: configurations.all {
resolutionStrategy {
force 'com.android.support:support-v4:27.1.0'
}
}
configurations {
all*.exclude group: 'com.android.support', module: 'support-v13'
} Other errors refer to: Changes for the API: On the client make sure you add a android channel: PushNotification.createChannel(
() => {
console.log('createChannel');
},
() => {
console.log('error');
},
{
id: Meteor.userId(), //Use any Id you prefer, but the same Id for this channel must be sent from the server,
description: 'Android Channel', //And any description your prefer
importance: 3,
vibration: true
}
); Server changes: Add the android_channel_id so the Push message like below: Push.send({
from: 'test',
title: 'test',
text: 'hello',
android_channel_id:this.userId, //The android channel should match the id on the client
query: {
userId: this.userId
},
gcm: {
style: 'inbox',
summaryText: 'There are %n% notifications'
},
}); Install $ meteor add raix:push
$ meteor add cordova:[email protected]
$ meteor add cordova:[email protected]
# Note: you probably want to adjust the version numbers to the latest versions of the packages Getting startedDepending on the platforms you want to work with you will need some credentials or certificates. Have a look at the Basic example Theres a good walkthrough by Arthur Carabott Read the raix:push Newbie Manual by @harryward Or check out the DEMO by @elvismercado (This example uses the deprecated config.push.json) Example code for sound (todo: add in docs) Note: Version 3 uses the cordova npm plugin phonegap-plugin-push Note: Some of the documentation is outdated, please file an issue or create a pull request - same if you find a bug or want to add tests DevelopmentWatch the project progress for status or join development ConfigUse the ClientFor example in Push.Configure({
android: {
senderID: 12341234,
alert: true,
badge: true,
sound: true,
vibrate: true,
clearNotifications: true
// icon: '',
// iconColor: ''
},
ios: {
alert: true,
badge: true,
sound: true
}
}); Additionally you have to touch App.configurePlugin('phonegap-plugin-push', {
SENDER_ID: 12341234
}); This is due to changes in the cordova plugin itself ServerFor example in Push.Configure({
apn: {
certData: Assets.getText('apnDevCert.pem'),
keyData: Assets.getText('apnDevKey.pem'),
passphrase: 'xxxxxxxxx',
production: true,
//gateway: 'gateway.push.apple.com',
},
gcm: {
apiKey: 'xxxxxxx', // GCM/FCM server key
}
// production: true,
// 'sound' true,
// 'badge' true,
// 'alert' true,
// 'vibrate' true,
// 'sendInterval': 15000, Configurable interval between sending
// 'sendBatchSize': 1, Configurable number of notifications to send per batch
// 'keepNotifications': false,
//
}); Note: Common API // Push.debug = true; // Add verbosity
Push.send({
from: 'push',
title: 'Hello',
text: 'world',
badge: 1, //optional, use it to set badge count of the receiver when the app is in background.
query: {
// Ex. send to a specific user if using accounts:
userId: 'xxxxxxxxx'
} // Query the appCollection
// token: appId or token eg. "{ apn: token }"
// tokens: array of appId's or tokens
// payload: user data
// delayUntil: Date
}); When in secure mode the client send features require adding allow/deny rules in order to allow the user to send push messages to other users directly from the client - Read more below Client API Push.id(); // Unified application id - not a token
Push.setBadge(count); // ios specific - ignored everywhere else
Push.enabled(); // Return true or false
Push.enabled(false); // Will disable notifications
Push.enabled(true); // Will enable notifications (requires a token...) Security allow/deny sendThis package allows you to send notifications from the server and client. To restrict the client or allowing the client to send use When a client calls send on Push, the Push's allow and deny callbacks are called on the server to determine if the send should be allowed. If at least one allow callback allows the send, and no deny callbacks deny the send, then the send is allowed to proceed. Push.allow({
send: function(userId, notification) {
return true; // Allow all users to send
}
});
// Or...
Push.deny({
send: function(userId, notification) {
return false; // Allow all users to send
}
}); Meteor Methodsraix:push-updateStores a token associated with an application and optionally, a userId. Parameters: options - An object containing the necessary data to store a token. Fields:
Returns: recordId - The id of the stored document associating appName, token, and optionally user in an object of the form:
raix:push-setuserAssociates the current users ID with an Application/Token record based on the given id. Parameters: id - String - The ID of the Application/Token record raix:push-metadataAdds metadata to a particular Application/Token record. Parameters data - Object containing the following fields:
More InfoFor more internal or advanced features read ADVANCED.md For maintainersWe have a slack channel to keep communication tight between contributors - it's on https://meteoropensourcecomm.slack.com in channel Kind regards Morten (aka RaiX) |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论