背景:在应用没有打开时,从消息中心打开消息,在Ionic 的框架中无法调用到jPushPlugin插件的receiveNotificationIniOSCallback; (JPush用的cn.jpush.phonegap.JPushPlugin 2.0.0 "JPush Plugin"--ionic plugin add https://github.com/DongHongfei/jpush-phonegap-plugin.git )
解决方案在网上查了3天,最后总结如下:
在AppDelegate.m 中的 didFinishLaunchingWithOptions 方法中{
// 原有代码
//JPush添加代码
//
再加入
// add code
if (launchOptions) {
NSDictionary * notificationKey = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
if(notificationKey){
BOOL isActive;
if (application.applicationState == UIApplicationStateActive) {
isActive = TRUE;
} else {
isActive = FALSE;
}
NSMutableDictionary *userInfo = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"",@"isActive",nil];
[userInfo addEntriesFromDictionary:notificationKey];
[userInfo setValue: [[NSNumber alloc] initWithBool:isActive] forKey:@"isActive" ];
double delayInSeconds = 3.0;//需要等待框架加载完成才能调用receiveNotificationIniOSCallback
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC));
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
NSError *error;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:userInfo options:0 error:&error];
NSString *jsonString = [[NSString alloc]initWithData:jsonData encoding:NSUTF8StringEncoding];
NSString *javascript = [NSString stringWithFormat:@"window.plugins.jPushPlugin.receiveNotificationIniOSCallback('%@')",jsonString ];
[viewController.webView stringByEvaluatingJavaScriptFromString:javascript];
});
}
}
}
分享到:
相关推荐
JPush PhoneGap Plugin ###创建项目### cordova create 文件夹名字 包名 应用名字 cordova create Myproj com.myproj.jpush MyTestProj 添加平台 cd Myproj :不进入项目会出现[RangeError:Maximum call stack size...
cordova跳转原生Activity
cordova集成RS232串口通讯
注意您的推送通知消息必须包含键“ content-available”:1 遵循,因此可与一起。 该插件利用了Cordova / PhoneGap的。 使用插件 插件使用configure(success, fail, option)方法创建对象window.plugins....
android 程序集成 cordova使用方法
> 此实例代码为 Android Studio 原生项目集成 Cordova 插件演示,而非通过 Cordova 直接编译,方便您在现有 Android Studio 项目中集成 Cordova 进行 H5 混合开发。 为了结构清晰及易维护性,项目分三个 Module ,...
cordova项目集成cordova-plugin-qrscanner二维码扫描插进,简单实现了功能,样式自己可以改
cordova在app内部指定浏览器打开链接插件:cordova-plugin-inappbrowser - osc_bhmyqusc
JPush PhoneGap / Cordova插件 极光官方支持的cordova推出插件。 如需要IM功能的插件,可关注 如需要短信验证码功能插件,可关注 如需要统计分析功能插件,可关注 注意:插件从v3.4.0开始支持cordova-android 7.0.0...
Cordova集成Umeng统计 + Bugly全量更新(android) [TOC] 一、Umeng统计准备工作- 本地能正常运行cordova、android- 在友盟注册了应用 (http://mobile.umeng.com/apps)- 下载友盟移动统计SDK ...
meteor-cordova-notifications, 使用 Meteor 构建的Cordova应用程序的简单推送通知 meteor-cordova-notifications[Gitter]...使用 Meteor 构建的Cordova应用程序的简单推送通知。为什么?
工程中已经集成了MTJ的SDK,以及百度移动统计Cordova插件,可以直接运行调试 JS Api调用示例,请查看$(home)/www/js/index.js 文件。 Android clone此代码库,并运行 cordova platform add android cordova prepare ...
cordova 微信分享插件,这是一个很不错的Demo,适合初学者!
cordova-screenshot cordova截屏插件 document.addEventListener("deviceready", init, false); function init() { document.querySelector("#share").addEventListener("touchend", function() { navigator....
极光推送 JPush 内网解决方案: MPush -- 基于Netty的开源实时消息推送系统 主站地址:http://mpusher.github.io 主站上列出了实际代码落地的各种代码,包括纯java客户端源码,安卓SDK和DEMO源码。 但是如果您的...
Android Cordova 插件开发之编写自定义插件源码
parse-push-plugin, 在分析平台上,为 Cordova/Phonegap/ionic 推送通知插件 Parse.Push 插件Cordova/Phonegap/ionic.的Parse.Push 插件,用于宿主 Parse.com 和开放源码解析服务器。高光工作在 Parse.com 和解析...
If you’re familiar with an older version of Cordova, this book will show you in detail how to use all of the new stuff that’s in Cordova 3 plus stuff that has been around for a while (like the ...
l## JPush PhoneGap Plugin ## ###准备工作 cordova create 文件夹名字 包名 应用名字 cordova create Myproj com.myproj.jpush MyTestProj 添加平台 cd Myproj cordova platform add android cordova ...
cordova+科大讯飞语音SDK使用教程使用本教程,默认你的电脑设备已经支持Java环境、支持Android开发(Android SDK Manage)、支持cordova开发的环境下,即能创建一个可运行并打包的cordova项目或者原生安卓项目的前提...