背景:在应用没有打开时,从消息中心打开消息,在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的跳转,以及`HjkPlugin`可能涉及的相关知识点。 首先,理解Cordova的插件机制是至关重要的。Cordova通过插件系统连接Web层与原生层,使得JavaScript代码可以...
2. **创建Cordova项目**:打开命令行工具,全局安装Cordova,输入`npm install -g cordova`。然后使用`cordova create <项目目录> <包名> <应用名称>`创建一个新的Cordova项目。 3. **添加Android平台**:进入项目...
而“cordova集成RS232串口通讯”这个主题,涉及到的是如何在Cordova应用中实现与硬件设备通过RS232串行接口进行通信。 首先,了解RS232串口通讯的基础知识是必要的。RS232,全称是“Recommended Standard 232”,是...
标题中提到的“cordova在app内部指定浏览器打开链接插件”指的是一种Cordova插件,它允许开发者在混合移动应用(Hybrid Mobile Application)内部打开网页链接,而不是通过外部浏览器打开。这种插件通常用于需要在...
注意您的推送通知消息必须包含键“ content-available”:1 遵循,因此可与一起。 该插件利用了Cordova / PhoneGap的。 使用插件 插件使用configure(success, fail, option)方法创建对象window.plugins....
> 此实例代码为 Android Studio 原生项目集成 Cordova 插件演示,而非通过 Cordova 直接编译,方便您在现有 Android Studio 项目中集成 Cordova 进行 H5 混合开发。 为了结构清晰及易维护性,项目分三个 Module ,...
在Cordova项目中集成二维码扫描功能,能够极大地提升用户体验,比如快速登录、数据交换或链接跳转等。本篇文章将详细介绍如何在Cordova项目中集成`cordova-plugin-qrscanner`插件,实现二维码扫描功能,并对样式进行...
在本文中,我们将深入探讨如何使用Ionic框架与JPush服务集成,实现移动应用的消息推送功能。Ionic是一个流行的开源HTML5移动应用框架,它基于AngularJS和Apache Cordova,允许开发者使用Web技术(如HTML、CSS和...
6. **修改配置文件**:在Xcode中打开Cordova的iOS项目,找到`config.xml`文件,添加必要的配置信息,如设置插件的权限、启动配置等。 7. **实现推送服务**:在JavaScript代码中,引入插件并进行初始化,注册设备...
【百度地图定位Cordova插件】是专门为Cordova框架设计的一款插件,它允许开发者集成百度地图服务到他们的移动应用程序中,实现精准的定位功能。Cordova是一个流行的开源框架,它使得开发者可以使用HTML5、CSS3和...
在这个标题为“cordova-plugin-wechat-master”的项目中,我们关注的是一个针对Cordova的微信分享插件,这对于想要在Cordova应用中集成微信社交功能的开发者来说,是一个非常实用的资源。 微信是中国最流行的社交...
6. 集成进应用:将这些API集成到你的Cordova应用中,当接收到新通知或者有其他需要提示用户的内容时,调用相关方法更新角标。 7. 配置权限:在Android平台上,可能还需要在`AndroidManifest.xml`中添加相应的权限,...
8. **处理页面间跳转**:如果需要在H5页面之间导航,可以使用JavaScript的`window.location.href`或者使用Cordova提供的`window.cordova.InAppBrowser`插件来打开新页面。 9. **原生与H5交互**:Cordova提供了一套...
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 ...
Cordova二维码扫描插件是移动应用开发中的一个重要工具,它结合了Cordova框架与二维码识别技术,使得原生移动应用能够方便地集成二维码扫描功能。Cordova是一个流行的开源框架,它允许开发者使用HTML、CSS和...
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 ...