我有一个使用oneSignal作为推送提供商的应用程序.我可以收到推送通知,效果很好.但是,如果我尝试访问推送有效负载,我什么都didReceiveRemoteNotification没有被调用.
我有以下代码
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
if application.applicationState != UIApplicationState.Background {
let preBackgroundPush = !application.respondsToSelector("backgroundRefreshStatus")
let oldPushHandlerOnly = !self.respondsToSelector("application:didReceiveRemoteNotification:fetchCompletionHandler:")
var pushPayload = false
if let options = launchOptions {
pushPayload = options[UIApplicationLaunchOptionsRemoteNotificationKey] != nil
}
}
if application.respondsToSelector("registerUserNotificationSettings:") {
let settings = UIUserNotificationSettings(forTypes: [.Alert, .Badge, .Sound], categories: nil)
application.registerUserNotificationSettings(settings)
application.registerForRemoteNotifications()
} else {
let types : UIRemoteNotificationType = [.Badge, .Alert, .Sound]
application.registerForRemoteNotificationTypes(types)
}
}
func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject]) …Run Code Online (Sandbox Code Playgroud) 我在 OneSignal.com 中创建了一个应用程序。现在我需要对用户进行细分,但我不知道如何使用 onesignal 使用 android 来做到这一点,因为我是 android 新手。
那么如何在 Android OneSignal 中细分用户,以便向该细分中的特定用户发送推送通知。
我正在通过阅读他们的文档来设置OneSignal的Web推送通知.下面的代码块是我的配置示例
<script>
var OneSignal = window.OneSignal || [];
OneSignal.push(["init", {
appId: "my-app-id",
safari_web_id: 'my-safari-web-id',
autoRegister: false,
notifyButton: {
enable: true /* Set to false to hide */
},
}]);
</script>
Run Code Online (Sandbox Code Playgroud)
它适用于Google Chrome和Firefox.但是在safari上不起作用,当我点击订阅通知按钮时,我得到了如下错误
我的配置出了什么问题?
我使用safari版本10.0.1(12602.2.14.0.7)
收到通知后,会显示帐单图标而不是应用图标或自定义图标,我会覆盖它以显示代码.我可以从仪表板更改图标,但我想从代码中处理它
Intilaization
OneSignal.startInit(this)
.inFocusDisplaying(OneSignal.OSInFocusDisplayOption.Notification)// to hide dialog
.setNotificationOpenedHandler(new ExampleNotificationOpenedHandler())
.init();
Run Code Online (Sandbox Code Playgroud)
接收器类
class ExampleNotificationOpenedHandler implements OneSignal.NotificationOpenedHandler
{
// This fires when a notification is opened by tapping on it.
@Override
public void notificationOpened(OSNotificationOpenResult result)
{
OSNotificationAction.ActionType actionType = result.action.type;
JSONObject data = result.notification.payload.additionalData;
String customKey;
Intent intent = new Intent(Roshetta.app, SplashActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT | Intent.FLAG_ACTIVITY_NEW_TASK);
int requestCode = 0;
PendingIntent pendingIntent = PendingIntent.getActivity(Roshetta.app, requestCode, intent, PendingIntent.FLAG_ONE_SHOT);
Uri sound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
Bitmap largeIcon = BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher);
android.support.v4.app.NotificationCompat.Builder noBuilder = new android.support.v4.app.NotificationCompat.Builder(Roshetta.app)
.setSmallIcon(R.mipmap.ic_launcher).setLargeIcon(largeIcon).setContentTitle(result.notification.payload.title)
.setContentText(result.notification.payload.body …Run Code Online (Sandbox Code Playgroud) 我正在使用 OneSignal 来管理推送通知。一切都很好,但是您如何处理同一设备上的多个用户?
例如,玩家 A 登录到我的应用程序。OneSignal 只能通过与设备关联的玩家 ID 来查看它们。
现在玩家 A 退出,并以玩家 B 的身份重新登录我的应用。因为玩家 A 和玩家 B 使用相同的设备,OneSignal 将向他们发送相同的通知(因为玩家 ID 是特定于设备的)。
那么如何使用 OneSignal 区分同一设备上的许多不同用户?
我想为OneSignal发送预定的消息,但我没有使用他们的仪表板,我想使用API来执行此操作,我确实阅读了他们的文档,但我找不到任何东西来修改他们当前的API,以便我可以发送预定的通知
function sendMessage(){
$content = array(
"en" => $message,
);
$fields = array(
'app_id' => "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
'included_segments' => array('All'),
'data' => array("foo" => "bar"),
'contents' => $content
);
$fields = json_encode($fields);
print("\nJSON sent:\n");
print($fields);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://onesignal.com/api/v1/notifications");
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json; charset=utf-8',
'Authorization: Basic NGEwMGZmMjItY2NkNy0xMWUzLTk5ZDUtMDAwYzI5NDBlNjJj'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
$response = curl_exec($ch);
curl_close($ch);
return $response;
}
$response = sendMessage();
$return["allresponses"] = $response;
$return = json_encode( $return); …Run Code Online (Sandbox Code Playgroud) 我想通过OneSignal发送通知,我按照文档中的所有步骤进行操作但总是显示此消息'Apple返回BadDeviceToken错误.有些用户与发送环境绑定在不同的环境中.任何的想法!!
(生产证书)捆绑ID:*****,到期日:2018年9月15日
(沙盒证书)捆绑ID:*****,到期日:2018年9月15日
用户环境不匹配(Sandbox)Apple返回BadDeviceToken错误.某些用户与发送环境绑定在不同的环境中.
此警告发生一次,最后一次发生不到10秒.
受影响的用户:6414cbae-876a-4360-9783-eb51c0cc0e29
帮我解决这个问题.
我想创建oneSignal段具有他们是否有该原料药或其他任何方式把它与我做访问仪表盘,所以我在想,出来
我正在集成由“实时数据库”中的更新触发的“ Firebase云消息传递”,在与One Signal集成(用于向IOS设备发送Voip推送通知)之前,它一直运行良好。发送Voip推送通知的一种信号运行良好。
有谁知道我的代码会发生什么,如果您可以在下面更正我的代码,这对我非常有帮助(即使只是建议,教如何解决的问题也有很大帮助)。
已经尝试使用不带Firebase的One Signal发送常规推送通知和Voip推送通知,但是One Signal技术支持提到“我们不建议将同一应用程序用于voip和常规推送。”
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
// PushKit
let registry = PKPushRegistry(queue: nil)
registry.delegate = self
registry.desiredPushTypes = [PKPushType.voIP]
// Converted to Swift 4 by Swiftify v4.1.6781 - https://objectivec2swift.com/
FBSDKApplicationDelegate.sharedInstance().application(application, didFinishLaunchingWithOptions: launchOptions)
SDKApplicationDelegate.shared.application(application, didFinishLaunchingWithOptions: launchOptions)
if #available(iOS 10.0, *) {
// For iOS 10 display notification (sent via APNS)
UNUserNotificationCenter.current().delegate = self
let authOptions: UNAuthorizationOptions = [.alert, .badge, .sound]
UNUserNotificationCenter.current().requestAuthorization( …Run Code Online (Sandbox Code Playgroud)