h5+app项目,推送平台 " 个推 "

首先在manifest.json配置文件中点击模块权限配置,勾选push消息推送配置如图1-1

第二部在manifest.json配置文件SDK配置中勾选推送为个推,如图,

可以点击推送配置指南查看官方指南

在开发者中心申请的appid、appkey等填写在对应位置,然后打包成app

 开发者中心网站 https://dev.getui.com/dos5.0/#/config/351843721188751/appConfig

判断ios系统推送功能是否开启,并提醒前往设置开启推送功能,原文 https://ask.dcloud.net.cn/article/35727

// 判断iOS系统推送功能是否开启,并提醒去设置页打开设置推送
function isOpenPush() {
var UIApplication = plus.ios.import("UIApplication");
var app = UIApplication.sharedApplication();
var enabledTypes = 0;
if (app.currentUserNotificationSettings) {
var settings = app.currentUserNotificationSettings();
enabledTypes = settings.plusGetAttribute("types");
console.log("enabledTypes1:" + enabledTypes);
if (enabledTypes == 0) {
plus.nativeUI.confirm("推送设置未开启,是否去开启?", function (e) {
if (e.index == 0) {
var NSURL2 = plus.ios.import("NSURL");
var setting2 = NSURL2.URLWithString("app-settings:");
var application2 = UIApplication.sharedApplication();
application2.openURL(setting2);
plus.ios.deleteObject(setting2);
plus.ios.deleteObject(NSURL2);
plus.ios.deleteObject(application2);
}
}, {
"buttons": ["是", "否"],
"verticalAlign": "center"
});
}
plus.ios.deleteObject(settings);
} else {
enabledTypes = app.enabledRemoteNotificationTypes();
if (enabledTypes == 0) {
console.log("推送未开启!");
} else {
console.log("已经开启推送功能!")
}
console.log("enabledTypes2:" + enabledTypes);
}
plus.ios.deleteObject(app);
}

添加推送消息事件监听器  原文档地址 http://www.html5plus.org/doc/zh_cn/push.html

支持事件类型:"click"-从系统消息中心点击消息启动应用事件;"receive"-应用从推送服务器接收到推送消息事

//"所有plus api都应该在此事件发生后调用,否则会出现plus is undefined"
document.addEventListener('plusready', function(){
// 扩展API加载完毕,现在可以正常调用扩展API
plus.runtime.setBadgeNumber(0);//用户没有点击推送栏的消息进来,直接点击app进入,清除用户消息未读数量
// 添加监听从系统消息中心点击某条消息启动应用事件,该click事件只有应用离线或者后台运行时才会触发,点击相应的推送消息执行里面的逻辑处理
plus.push.addEventListener( "click", function ( msg ) {
// 分析msg.payload处理业务逻辑
plus.runtime.setBadgeNumber(0); //清空badge用户消息未读数量
if (navigator.userAgent.match(/(iPhone|iPod|iPad);?/i)) { //判断当前手机的机型为苹果等
if(msg.payload.open || msg.payload.url){
console.log("应用离线(或应用后台运行:触发“click”事件)",msg.payload.open) //open app协议
console.log("应用离线(或应用后台运行:触发“click”事件)",msg.payload.url) //url打开网址
if(msg.payload.url){
mui.init({ //用户每次点击左侧返回按钮处理页面返回
beforeback: function(){
let viewObj = plus.webview.getWebviewById('jmbz_app'); //查找指定标识的WebviewObject窗口
viewObj.canBack((event) => { //查询Webview窗口是否可后退
var canBack = event.canBack; //event.canBack是否可返回
if(canBack) { //可返回
viewObj.back(); //返回上一级
} else {
plus.webview.close('jmbz_app') //关闭Webview窗口
}
})
return false
}
});
mui.openWindow({ //打开带原生导航栏的新页面
url: msg.payload.url, //打开的地址
id: 'jmbz_app', //打开的id,自定义
styles: { // 窗口参数 参考5+规范中的WebviewStyle,也就是说WebviewStyle下的参数都可以在此设置
titleNView: { // 窗口的标题栏控件
autoBackButton: true, //标题栏控件是否显示左侧返回按钮
// titleText:"标题栏", // 标题栏文字,当不设置此属性时,默认加载当前页面的标题,并自动更新页面的标题
titleColor:"#000000", // 字体颜色,颜色值格式为"#RRGGBB",默认值为"#000000"
titleSize:"17px", // 字体大小,默认17px
backgroundColor:"#F7F7F7", // 控件背景颜色,颜色值格式为"#RRGGBB",默认值为"#F7F7F7"
progress:{ // 标题栏控件的进度条样式
color:"#00FF00", // 进度条颜色,默认值为"#00FF00"
height:"2px" // 进度条高度,默认值为"2px"
},
splitLine:{ // 标题栏控件的底部分割线,类似borderBottom
color:"#CCCCCC", // 分割线颜色,默认值为"#CCCCCC"
height:"1px" // 分割线高度,默认值为"2px"
}
}
}
});
}else{
window.location.href = msg.payload.open //打开应用app或者网址
window.setTimeout(function () {
window.location.href = msg.payload.download; //下载app地址
}, 2000)
}
}
}
}, false );
});

ios手机app消息推送的更多相关文章

  1. 基于APNs最新HTTP/2接口实现iOS的高性能消息推送(服务端篇)

    1.前言 本文要分享的消息推送指的是当iOS端APP被关闭或者处于后台时,还能收到消息/信息/指令的能力. 这种在APP处于后台或关闭情况下的消息推送能力,通常在以下场景下非常有用: 1)IM即时通讯 ...

  2. 浅谈APP消息推送

    作为移动端APP产品运营最重要的运营手段,消息推送(push)被越来越多的APP厂商所重视,在信息泛滥的移动互联网时代,手机APP应用安装得越来越多,小小的手机屏幕每天收到的消息推送也越来越多,站在用 ...

  3. 淘宝APP消息推送模型

    为什么到了2020年,"统一推送联盟"依旧无法起显著作用? - 知乎 https://www.zhihu.com/question/370632447 https://mp.wei ...

  4. (转)在SAE使用Apple Push Notification Service服务开发iOS应用, 实现消息推送

    在SAE使用Apple Push Notification Service服务开发iOS应用, 实现消息推送 From: http://saeapns.sinaapp.com/doc.html 1,在 ...

  5. APP消息推送是否进入消息中心和click、receive事件分析

    前端时间研究APP消息推送的机制,由于机型.版本的碎片化,消息推送的机制不太好理解,所以总结下,放在博文里以备后续查阅. 安卓Android系统的消息推送:     安卓 推送方式 应用状态 类型 消 ...

  6. IOS开发之实现App消息推送

    转自:http://blog.csdn.net/shenjie12345678/article/details/41120637 第一部分 首先第一步当然是介绍一下苹果的推送机制(APNS)咯(ps: ...

  7. IOS开发之实现App消息推送(最新)

    好久没有写过博客啦,今天就由本菜鸟给大家做一个简单的IOSApp消息推送教程吧!一切从0开始,包括XCode6, IOS8, 以及苹果开发者中心最新如何注册应用,申请证书以及下载配置概要文件,相信很多 ...

  8. IOS8开发之实现App消息推送

    第一部分 Apple Push Notification Service 首先第一步当然是介绍一下苹果的推送机制(APNS)咯(ps:其实每一篇教程都有),先来看一张苹果官方对其推送做出解释的概要图. ...

  9. iOS/Android网络消息推送的实现两种方法

    移动时代,用户为王,而每个APP拥有的活跃用户量(Active Users),决定了其价值. 消息推送成为了不可或缺的活跃唤起工具. 目前消息推送有如下两种途径: 1.iOS传统方式: 通过Apple ...

随机推荐

  1. Maven中依赖的scope的依赖范围

    在Maven中依赖的域有这几个:import.provided.runtime.compile.system.test 1compile 的范围 当依赖的scope为compile的时候,那么当前这个 ...

  2. springMvc将对象json返回时自动忽略掉对象中的特定属性的注解方式

    1.注解使用在 类名,接口头上 @JsonIgnoreProperties(value={"comid"}) //希望动态过滤掉的属性 例 @JsonIgnorePropertie ...

  3. 爬虫urllib2 的异常错误处理URLError和HTTPError

    urllib2 的异常错误处理 在我们用urlopen或opener.open方法发出一个请求时,如果urlopen或opener.open不能处理这个response,就产生错误. 这里主要说的是U ...

  4. python问题集

    1.selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in P ...

  5. bim模型中所有IfcWallStandardCase构件

    ifc中的IfcWallStandardCase构件 //执行吊装 void startHoisting() { osg::Vec3f vec3f1 = index_node1->getBoun ...

  6. oracle 添加字段

    alter table 表名 add 新增字段名(类型+长度); #添加字段 alter table asset_orders add remark varchar2(255); #查看 descri ...

  7. 【视频开发】 十全大补:CxImage图像处理类库

     十全大补:CxImage图像处理类库 转载IT168        CxImage是一个可以用于MFC 的C++图像处理类库类,它可以打开,保存,显示,转换各种常见格式的图像文件,比如BMP, JP ...

  8. MergeSort-vector

    归并排序-vector实现 #include <iostream> #include <vector> using std::cout; using std::endl; us ...

  9. springboot2 配置 https

    package cn.xiaojf.aibus.configure; import org.apache.catalina.Context; import org.apache.catalina.co ...

  10. phpexcel无法导出的解决方法

    phpexcel无法导出的解决方法 <pre> set_time_limit(0); ini_set("memory_limit","512M"); ...