这是我的代码,如何在点击通知中的通知或按钮时将用户导航到所需的屏幕.
componentWillMount() {
OneSignal.addEventListener('received', this.onReceived);
OneSignal.addEventListener('opened', this.onOpened);
OneSignal.addEventListener('registered', this.onRegistered);
OneSignal.addEventListener('ids', this.onIds);
OneSignal.inFocusDisplaying(2);
OneSignal.requestPermissions({
alert: true,
badge: true,
sound: true
});
}
componentWillUnmount() {
this.isUnmounted = true;
OneSignal.removeEventListener('received', this.onReceived);
OneSignal.removeEventListener('opened', this.onOpened);
OneSignal.removeEventListener('registered', this.onRegistered);
OneSignal.removeEventListener('ids', this.onIds);
}
onReceived(notification) {
console.log("Notification received: ", notification);
}
onOpened(openResult) { // HERE I WANT TO NAVIGATE TO ANOTHER SCREEN INSTEAD OF HOME SCREEN
this.isNotification = true;
let data = openResult.notification.payload.additionalData;
let inFocus = openResult.notification.isAppInFocus;
console.log('Message: ', openResult.notification.payload.body);
console.log('Data: ', openResult.notification.payload.additionalData);
console.log('isActive: ', openResult.notification.isAppInFocus);
console.log('openResult: ', openResult); …
Run Code Online (Sandbox Code Playgroud) 我在 Flutter 中使用 OneSignal 进行推送通知。我可以在设备和模拟器上构建它,但在存档时出现错误。
ld: framework not found Pods_OneSignalNotificationServiceExtension
迁移到 null-safety 和 flutter 2 后,我遇到了 ios 构建问题:
我运行flutter clean; rm ios/Podfile.lock pubspec.lock; rm -rf ios/Pods ios/Runner.xcworkspace; flutter run --flavor dev -t lib/main_dev.dart
并得到这个 logcat:
Undefined symbols for architecture arm64:
"_OBJC_CLASS_$_FlutterStandardTypedData", referenced from:
objc-class-ref in google_maps_flutter(GoogleMapController.o)
"_OBJC_CLASS_$_FlutterStandardMessageCodec", referenced from:
objc-class-ref in google_maps_flutter(GoogleMapController.o)
"_OBJC_CLASS_$_FlutterError", referenced from:
objc-class-ref in firebase_core(FLTFirebasePlugin.o)
objc-class-ref in google_maps_flutter(FLTGoogleMapsPlugin.o)
objc-class-ref in google_maps_flutter(FLTGoogleMapTileOverlayController.o)
objc-class-ref in google_maps_flutter(GoogleMapMarkerController.o)
objc-class-ref in google_maps_flutter(GoogleMapController.o)
objc-class-ref in onesignal_flutter(OSFlutterCategories.o)
"_OBJC_CLASS_$_FlutterMethodChannel", referenced from:
objc-class-ref in firebase_core(FLTFirebaseCorePlugin.o)
objc-class-ref in firebase_crashlytics(FLTFirebaseCrashlyticsPlugin.o)
objc-class-ref in google_maps_flutter(GoogleMapController.o)
objc-class-ref in onesignal_flutter(OSFlutterOutcomeEventsController.o)
objc-class-ref …
Run Code Online (Sandbox Code Playgroud) 嗨,我正在尝试在Android中使用OneSignal,我正在按照本教程在Android Studio中安装SDK.这里
我能够编译依赖项并同步gradle文件.但是当我要导入com.onesignal.OneSignal;
它时说:无法解析符号!
这是我在app.gradle文件中的依赖项
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.0.1'
compile 'com.android.support:design:23.0.1'
compile 'com.onesignal:OneSignal:1.10.+@aar'
compile 'com.google.android.gms:play-services-gcm:+'
compile 'com.google.android.gms:play-services-analytics:+'
compile project(':gson-2.2.2')
compile project(':java_websocket')
compile project(':signalr-client-sdk')
compile project(':signalr-client-sdk-android')
}
Run Code Online (Sandbox Code Playgroud)
我完成的事情:
1. File > Synchronize
2. File > Invalidate Cashes and Restart
Run Code Online (Sandbox Code Playgroud)
更新:
我做了一个新项目的步骤,这没关系!为什么我不能在这个具体项目中做到这一点?
编辑:
整个build.gradle
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.1"
useLibrary 'org.apache.http.legacy'
defaultConfig {
applicationId "ir.irsapardaz.sina.gamev01"
manifestPlaceholders = [manifestApplicationId:"${applicationId}"]
minSdkVersion 15
targetSdkVersion 23
versionCode 1
versionName "1.0"
} …
Run Code Online (Sandbox Code Playgroud) 我有一个连接到Cordova/iOS应用程序的OneSignal帐户.我需要将播放器ID保存在我自己的数据库中,这样我就可以在任务到期或事件发生时向特定用户发送推送通知.
我在这里查看了API:https://documentation.onesignal.com/reference#view-device 但我不知道如何调用JavaScript函数将标识符保存到变量中.没有这方面的例子.
任何帮助将非常感激.
我想将 APNS 证书的 .p12 文件发送到 One Signal API,但我需要首先将 .p12 文件转换为 base64 字符串。我怎么做?API 文档如下: https: //documentation.onesignal.com/reference#create-an-app
我在我的iOS和Android应用程序中使用Milkman EasyPush ANE进行推送通知.与OneSignal后端一起使用.
一切都适用于iOS 9和Android,但没有iOS 10设备注册.我正在使用AnimateCC(与Flash CC Pro相同)和Air SDK 23构建.
如果我在iOS 10设备上调试并监听onRegFailed事件,我得到:
"找不到有效的aps-environment权利申请"
如上所述,iOS 9没有问题.
当我将IPA上传到App Store时,我收到以下消息:
缺少推送通知权利 - 您的应用程序包含Apple推送通知服务的API,但应用程序签名中缺少aps-environment权利.要解决此问题,请确保在Provisioning Portal中为推送通知启用了App ID.然后,使用包含aps-environment权利的分发配置文件为您的应用签名.这将创建正确的签名,您可以重新提交您的应用程序.有关详细信息,请参阅"本地和推送通知编程指南"中的"供应和开发".如果您的应用不使用Apple推送通知服务,则无需执行任何操作.您可以从将来的提交中删除API以停止此警告.如果您使用第三方框架,则可能需要与开发人员联系以获取有关删除API的信息.
但是为什么它在iOS 9上运行,而不是在iOS 10上呢?
谢谢您的帮助
我在这里阅读了文档:https://documentation.onesignal.com/docs/cordova-sdk但它完全不清楚!
我尝试几个测试没什么,我事件测试得到标题但仍然没有
document.addEventListener('deviceready', function () {
// Enable to debug issues.
// window.plugins.OneSignal.setLogLevel({logLevel: 4, visualLevel: 4});
var notificationOpenedCallback = function(jsonData) {
alert('notificationCallback: ' + JSON.stringify(jsonData)); => json data
alert('Title : '+ JSON.stringify(jsonData.payload.title)); => nothing
alert('Title2 : '+ jsonData.payload.title); => nothing
alert('Additional data: '+ jsonData.payload.additionalData); => nothing
};
window.plugins.OneSignal
.startInit("MY_ID")
.handleNotificationOpened(notificationOpenedCallback)
.endInit();
}, false);
Run Code Online (Sandbox Code Playgroud)
如何检索这些数据..
谢谢
我在我的项目中使用OneSignal,如下:
def taskRequests = getGradle().getStartParameter().getTaskRequests().toString()
def isPlay = !(taskRequests.contains("Foss") || taskRequests.contains("foss"))
buildscript {
repositories {
maven { url 'https://plugins.gradle.org/m2/' }
}
dependencies {
classpath 'gradle.plugin.com.onesignal:onesignal-gradle-plugin:[0.11.0, 0.99.99]'
}
}
apply plugin: 'com.onesignal.androidsdk.onesignal-gradle-plugin'
repositories {
maven { url 'https://maven.google.com' }
}
apply plugin: 'com.android.application'
if (isPlay) {
apply plugin: 'io.fabric'
}
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
apply plugin: "com.github.ben-manes.versions"
android {
compileSdkVersion versions.compileSdk
buildToolsVersion versions.buildTools
defaultConfig {
manifestPlaceholders = [onesignal_app_id : “111”,
// Project number pulled from dashboard, …
Run Code Online (Sandbox Code Playgroud) 如何在flutter应用程序中获取用户的playerId?玩家 ID 可以在 One signal 网站中找到,但我希望在 flutter 应用程序中找到它,并希望将其存储起来以向特定用户发送通知。
onesignal ×10
flutter ×3
ios ×3
android ×2
cordova ×2
javascript ×2
air ×1
build.gradle ×1
entitlements ×1
flutter-ios ×1
flutter2.0 ×1
json ×1
node.js ×1
openssl ×1
phonegap ×1
react-native ×1
react-redux ×1