现在我知道这方面有很多问题,但我根本没有遇到运气,并且想在这里问一个问题.
我有一个应用程序只运行一个启动画面,然后是MainActivity(这只是一个WebView)现在我将它与OneSignal集成以接收推送通知.
一切都很好,我的意思是当通过onesignal网站发送到我的手机时收到通知 - 但我面对的是,点击通知不会得到我的ResultActivity(只是一个显示Toast of message的活动).
我的代码片段如下所示:
splashscreen.java:
public class splashscreen extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.splash);
Thread splashThread = new Thread() {
@Override
public void run() {
try {
int waited = 0;
while (waited < 5000) {
sleep(100);
waited += 100;
}
} catch (InterruptedException e) {
// do nothing
} finally {
finish();
Intent i = new Intent();
i.setClassName("com.google",
"com.google.Main");
startActivity(i);
}
}
};
splashThread.start();
}
@Override
protected void onPause() { …Run Code Online (Sandbox Code Playgroud) 我在我的Xamarin iOS应用程序中使用OneSignal服务,符合以下文档:https://documentation.onesignal.com/docs/xamarin-sdk-setup
我已经完成了所有步骤,但是如果我覆盖了AppDelegate方法
OnResignActivation
DidEnterBackground
WillEnterForeground
WillTerminate
OnActivated
Run Code Online (Sandbox Code Playgroud)
我收到了下一个错误:
ObjCRuntime.RuntimeException: Cannot get the method descriptor for the selector 'oneSignalApplicationDidBecomeActive:' on the type 'AppDelegate', because the selector does not correspond to a method
Run Code Online (Sandbox Code Playgroud)
我需要覆盖那些方法,我的错误是什么?
谢谢!
我知道我可以收到它们,Broadcast OnReceive()但我不能阻止Onesignal创建一个Notification.
我正在使用cordova离子开发android和iOS应用程序,我在我的应用程序中包含一个信号通知作为功能.
我注册了onesignal并测试推送通知.它运作良好.
现在我想从asp.net web api向特定用户发送一些信号通知.我试过这个网址但是我失败了.此外,我无法在我的应用程序中获取设备令牌.
谢谢.
我正在尝试使用OneSignal设置基于位置的推送通知,但我没有收到通知.我收到了错误All included players are not subscribed.我不知道问题是什么,有什么想法吗?
在"所有用户"的OneSignal列表上,未接收通知的用户具有设置了预期纬度和长坐标的"位置点",并且订阅了用户.我收到了没有位置发送的通知,因此发送和接收通知的过程有效.
我已将此行添加到我的AndroidManifest.xml文件中:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
Run Code Online (Sandbox Code Playgroud)
我的功能中也有这一行.run:
window.plugins.OneSignal.promptLocation();
Run Code Online (Sandbox Code Playgroud)
我的php将请求发送给OneSignal:
$content = $_GET['content'];
$lat = $_GET['lat'];
$long = $_GET['long'];
$radius = $_GET['radius'];
$response = sendMessage($content, $lat, $long, $radius);
function sendMessage($message, $lat, $long, $radius){
$content = array(
"en" => $message
);
$fields = array(
'app_id' => "aaaaaa-eeee-yyyyy-xxxx-zzzz",
'filters' => array(array("field" => "location", "radius" => $radius, "lat" => $lat, "long" => $long)),
//'filters' => array(array("field" => "location", "radius" => "1000", "lat" => "55.819329", "long" => …Run Code Online (Sandbox Code Playgroud) 我正在使用Onesigal API 实现Web推送通知.
$fields = array(
'app_id' => "07aae1f0-xxxx-xxxx-aa7a-21c79c5b6733",
'include_player_ids'=>['57dd3f80-xxxx-xxxx-adb0-294bfa69621a'],
'contents' => array( "en"=> "message" )
);
$fields = json_encode($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 YTdmYTYxYzYtN...tNjVlNzJkNDFlZmMz'));
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_CAINFO, dirname(__FILE__) . '/cacert.pem' );
$response = curl_exec($ch);
curl_close($ch);
Run Code Online (Sandbox Code Playgroud)
如果你知道他的话,上面的代码会向用户发送推送通知player_id.但是假设某些用户访问我的网站并订阅推送通知并离开.后来他再次访问(他已经订阅)并且喜欢.(添加到收藏夹)当前缺货的产品.那么如何才能获得player_id我可以存储在"subs_fav"表中的这个用户呢?
id player_id product_id
1 57dd3f80...a69621a p097
Run Code Online (Sandbox Code Playgroud)
当该产品变得可用时,pushFav()将运行功能,该功能将通知用户该产品现在可用并且他们可以购买但是为此我们应该知道偏好的用户的player_id.这个产品.我想知道如何找到这个player_id,以便我可以将addToFav()ajax调用发送到"sub_fav"表中的store
错误 ITMS-90206:“无效的捆绑包。‘app.app/PlugIns/OneSignalNotificationServiceExtension.appex’中的捆绑包包含不允许的文件‘Frameworks’。” 错误 ITMS-90206:“无效的捆绑包。‘app/PlugIns/OneSignalNotificationServiceExtension.appex’中的捆绑包包含不允许的文件‘Frameworks’。”
在我的应用项目中
Always Embed Swift Standard Library = No
Embedded Content Contains Swift = Yes
在我的目标
Always Embed Swift Standard Library = Yes
Embedded Content Contains Swift = Yes
在 OneSignalNotificationServiceExtension 中
Always Embed Swift Standard Library = No
Embedded Content Contains Swift = NO
当我尝试将 OneSignalNotificationServiceExtension 更改为 YES 时,它显示的错误import OneSignal不是No such module 'OneSignal
OneSignal 是用 Swift 编写的,应该与 use_frameworks 一起导入!
我正在尝试在我的 ionic 2 应用程序中使用一个信号插件
我已经安装了 Onesignal 并且它工作正常,但我不知道如何使用handleNotificationOpened函数,根本没有文件(没有找到任何文件)
这是我的代码:
this.oneSignal.handleNotificationReceived().subscribe((msg) => {
// o something when notification is received
});
Run Code Online (Sandbox Code Playgroud)
但我不知道如何msg用于获取数据。
有什么帮助吗?关联?保护你
我正在尝试将OneSignal集成到我的应用程序中。我想要的是当用户点击通知以模态呈现所需的ViewController时。我在handleNotificationActionOneSignal初始化时实现了开放VC逻辑。问题是OneSignal仍然打开其WebView,而我不希望它打开。用户点击通知时,有什么方法可以禁用打开WebView吗?
let onesignalInitSettings = [kOSSettingsKeyAutoPrompt: false]
OneSignal.initWithLaunchOptions(launchOptions,
appId: "myAppID",
handleNotificationAction: { result in
guard let payload = result?.notification.payload else { return }
guard let additionalData = payload.additionalData else { return }
guard let venueID = additionalData["internal"] as? String else { return }
DispatchQueue.main.async {
self.showVenueDetails(venueID)
}
},
settings: onesignalInitSettings)
OneSignal.inFocusDisplayType = .notification
OneSignal.promptForPushNotifications(userResponse: { accepted in
print("User accepted notifications: \(accepted)")
})
Run Code Online (Sandbox Code Playgroud) 在尝试按照 onesignal 文档使用 postman 向 onesignal 发送 POST 请求以发送通知时,在尝试发送时出现以下错误:
"app_id not found. You may be missing a Content-Type: application/json header."
此外,我相信我的 JSON 在语法上是正确的:
{
"included_segments": [
"Subscribed Users"
],
"App_id": "{Removed for obvious reasons}",
"contents": {
"en": "This is a message, sent from postman using the onesignal API"
},
"headings": {
"en": "This is a heading"
},
"subtitle": {
"en": "This is a subtitle, it should only appear on iOS devices"
},
"ios_badgeType": "SetTo",
"ios_badgeCount": 1,
"priority": 10
} …Run Code Online (Sandbox Code Playgroud)