我正在使用 Onesignal 进行推送通知,但陷入错误并且很多天都找不到解决方案。
OneSignal SDK配置:
世博 SDK 设置:
展会安装 onesignal-expo-plugin
纱线添加反应本机信号
{ "plugins": [ "onesignal-expo-plugin", { "mode": "development", }] }
从 'react-native-onesignal' 导入 OneSignal;
useEffect(() => { OneSignal.setAppId("在此处粘贴复制的 APP ID"); }, []);
世博预建
但出现错误
TypeError: Cannot read property 'smallIcons' of undefinedn at withSmallIcons (\node_modules\onesignal-expo-plugin\build\onesignal\withOneSignalAndroid.js)
Run Code Online (Sandbox Code Playgroud)
现在与此反应本机项目相关的所有控制台命令都会出现此错误。
我通过以下文档配置了 Onesignal https://documentation.onesignal.com/docs/react-native-expo-sdk-setup
react-native onesignal firebase-cloud-messaging expo react-native-onesignal
iOS和Android的adobe air应用程序中的推送通知存在一个奇怪的问题.
我正在使用Milkman Games的Easy Push ANE以及One Signal服务.
问题是通知确实到达,但有时(随机),消息发送后可能需要15分钟才能到达设备.
这对我的应用程序(出租车预订应用程序)至关重要,因为我依赖于出租车应用程序和用户应用程序之间通信的推送通知.因此,例如,如果用户请求出租车,则可能需要长达15分钟才能通知出租车应用程序.
与One Signal支持人员交谈,根据他们的说法,一切都很好,如果我查看One Signal仪表板,通知几乎会立即发送.
这种延误可能是什么原因?我能做些什么才能让事情变得更好?
谢谢.
Hai我想将推送通知发送到浏览器.所以我使用了信号.
var OneSignal = OneSignal || [];
OneSignal.push(["init", {
appId : "xxxxxxx",
autoRegister : false, /* Set to true to automatically prompt visitors */
subdomainName : "https://foxtaxi.onesignal.com",
notifyButton : {
enable: true /* Set to false to hide */
}
}]);
OneSignal.push(function() {
OneSignal.once("init", function(event) {
alert("hhh");
});
});
Run Code Online (Sandbox Code Playgroud)
但是我得到了Uncaught TypeError:OneSignal.once不是一个函数.如果有人知道,请帮助我.
我想删除带有响铃图标的通知按钮,并使用带有"您是否要订阅接收更新?"的文本消息的引导警报进行更改.只有两个按钮,带有"是"或"否"选项.当用户单击"是"然后订阅用户.基本上我只想在页面的标题部分中使用订阅按钮,而不是由dafault提供的OneSignal按钮.
我已经集成了一个用于推送通知的信号库。我想在应用未运行时通过单击推送通知来打开特定活动,我正在接收推送通知,但是在单击通知时应用崩溃。这是我的通知接收者代码
public class ExampleNotificationOpenedHandler implements OneSignal.NotificationOpenedHandler
{
Context context;
@Override
public void notificationOpened(OSNotificationOpenResult result) {
OSNotificationAction.ActionType actionType = result.action.type;
JSONObject data = result.notification.payload.additionalData;
String customKey;
if (data != null) {
customKey = data.optString("customkey", null);
if (customKey != null)
Log.e("OneSignalExample", "customkey set with value: " + customKey);
}
if (actionType == OSNotificationAction.ActionType.ActionTaken)
Log.i("OneSignalExample", "Button pressed with id: " + result.action.actionID);
Intent intent = new Intent(context, User_Detail.class);
intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT | Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
}
Run Code Online (Sandbox Code Playgroud)
这是我的错误信息
Attempt to invoke virtual method 'java.lang.String android.content.Context.getPackageName()' on a …Run Code Online (Sandbox Code Playgroud) 我正在我的学校做一个家庭作业的应用程序,我正在使用 Onesignal REST API,但我想将玩家 ID 保存在我的数据库中,以便在另一个应用程序(如服务器发件人)中使用它。
我的应用程序在intel xdk 中,我使用 Cordova 在 Android 上构建。
问题是我找不到任何获取玩家 ID 的示例。
有人能帮我解决这个问题吗?
我正在使用 JavaScript 谢谢。
这就是我在 .js 中的内容:
document.addEventListener('deviceready', function () {
var notificationOpenedCallback = function(jsonData) {
console.log('notificationOpenedCallback: ' + JSON.stringify(jsonData));
};
window.plugins.OneSignal
.startInit("XXXXXX-XXXX-XXX-XXXX-XXXXXXXXX") // <- api id
.handleNotificationOpened(notificationOpenedCallback)
.endInit();
OneSignal.push(function() {
OneSignal.getUserId(function(userId) {
console.log("OneSignal User ID:", userId);
});
OneSignal.getUserId().then(function(userId) {
console.log("OneSignal User ID:", userId);
});
});
}, false);
Run Code Online (Sandbox Code Playgroud) 我无法为onesignal插件创建添加ios平台。用android构建它很好。
我这样做:
$ ionic cordova platform add ios
Run Code Online (Sandbox Code Playgroud)
以下错误失败。
apple-ios version check failed ("/Users/megasap/Documents/project/railerdotcom/railercom_parent/platforms/ios/cordova/apple_ios_version"), continuing anyways.
Failed to install 'onesignal-cordova-plugin': undefined
Failed to restore plugin "onesignal-cordova-plugin" from config.xml. You might need to try adding it again. Error: /Users/megasap/.rbenv/shims/pod: line 21: /usr/local/Cellar/rbenv/1.0.0/libexec/rbenv: No such file or directory
--save flag or autosave detected
Saving ios@~4.5.4 into config.xml file ...
[ERROR] Exception:
Run Code Online (Sandbox Code Playgroud)
完整的执行和错误在这里:https : //gist.github.com/axilaris/a926c54eb515bef5eb2f7019e36aa40f
这曾经有用,我只是更新到最新的xcode 9.2来编译其他东西。使用最新的xcode是否有问题?
没有标签(在有效负载中)的相同代码使用默认模板值会成功,添加标签时消息将变为 200-ok,但在 onesignal 仪表板 - 消息 - 传递页面上我看到“无收件人”状态。我究竟做错了什么 ?
import json
import requests
headers = {'Authorization': 'Basic mykey',
'Content-Type': 'application/json'}
payload = {'app_id': 'myapp_id',
'include_player_ids': ['my_player_id'],
'tags': [{'key': 'full_name', 'relation': '=', 'value': 'MOSHOE'}],
'template_id': 'my_template id'}
req = requests.post('ONESIGNAL_URL',headers=headers,data=json.dumps(payload))
Run Code Online (Sandbox Code Playgroud) 我正在研究本机推送通知。在向任何第三方通知提供商进行购买之前,我正在寻找一些答案
我在我的 Laravel/Vue 应用程序中使用 OneSignal。我已将其包含<head>在文档中:
<script src="https://cdn.onesignal.com/sdks/OneSignalSDK.js" async=""></script>
<script>
var OneSignal = window.OneSignal || [];
OneSignal.push(function() {
OneSignal.init({
appId: "{{ env('ONESIGNAL_APP_ID') }}"
});
OneSignal.showNativePrompt();
});
</script>
<script>
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register('/OneSignalSDKWorker.js')
.then(function () {
console.log('Service worker registered');
})
.catch(function (error) {
console.log('Service worker registration failed:', error);
});
} else {
console.log('Service workers are not supported.');
}
</script>
Run Code Online (Sandbox Code Playgroud)
我也有自己的 service worker,所以我也遵循了这里的文档。
硬重置后发生的事情是安装了 Service Worker 并且一切正常,但是一旦我刷新页面,我就会得到:
OneSignalPageSDKES6.js?v=151102:1 Uncaught (in promise) InvalidStateError: 当前环境不支持此操作。在 Xe处的 Function.getServiceWorkerHref ( https://cdn.onesignal.com/sdks/OneSignalPageSDKES6.js?v=151102:1:41510 )。(https://cdn.onesignal.com/sdks/OneSignalPageSDKES6.js?v=151102:1:144028) at Generator.next …