大鱼说小事 發表於 2020-7-9 09:46:00

uni-app 使用个推推送系统消息

<p><span style="font-size: 18px"><strong>原文可查看此处 ,搜索&nbsp;uni-app 使用个推推送系统消息</strong></span></p>
<p><span style="font-size: 18px"><strong>https://mp.weixin.qq.com/mp/profile_ext?action=home&amp;__biz=Mzg3NTAzMzAxNA==&amp;scene=124#wechat_redirect</strong></span></p>
<p><span style="font-size: 18px"><strong>如果此链接在浏览器中无法打开,可将此链接发送给微信好友或者发送到微信文件传输助手。在点击打开</strong></span></p>
<hr>
<p>&nbsp;</p>
<p>前置条件:</p>
<p>1.1 开发环境:windows</p>
<p>1.2 开发框架 :&nbsp;uni-app 、H5+</p>
<p>1.3&nbsp;编辑器 :&nbsp;&nbsp;hbuilderx</p>
<p>2. 进入个推官网&nbsp;&nbsp;,注册申请账号,登录进入开发者中心,创建应用。</p>
<p>2.1 创建应用步骤:我的/应用管理/创建应用</p>
<p>2.2&nbsp;创建完应用以后,查看应用信息,得到appId、appKey、appSecret&nbsp;</p>
<p>&nbsp;3.&nbsp;打开&nbsp;hbuilderx ,在&nbsp;manifest.json 文件里面的源码视图下面配置&nbsp;sdkConfigsd 对象下的 push 里面配置&nbsp;igexin对象的属性值</p>
<p><span style="font-size: 14px">代码如下:manifest.json</span></p>
<div class="cnblogs_code">
<pre>"push"<span style="color: rgba(0, 0, 0, 1)"> : {
    </span>"igexin"<span style="color: rgba(0, 0, 0, 1)"> : {
      </span>"appid" : ""<span style="color: rgba(0, 0, 0, 1)">,
      </span>"appkey" : ""<span style="color: rgba(0, 0, 0, 1)">,
      </span>"appsecret" : ""<span style="color: rgba(0, 0, 0, 1)">
    }
}</span></pre>
</div>
<p>appid&nbsp; 、appkey&nbsp;、appsecret 的获取请阅读步骤&nbsp;2.2 获取</p>
<p>&nbsp;代码示例截图&nbsp;manifest.json</p>
<p><img src="https://img2020.cnblogs.com/blog/1699129/202007/1699129-20200709093541802-538018882.png"></p>
<p>&nbsp;</p>
<p>4.&nbsp;在APP客户端监听推送消息</p>
<p>可参考此处文档&nbsp; &nbsp;</p>
<h1>Push推送开发指南 :&nbsp;https://ask.dcloud.net.cn/article/34</h1>
<p>h5+推送消息监听 http://www.html5plus.org/doc/zh_cn/push.html#plus.push.addEventListener</p>
<p>4.1 配置完igexin的属性值以后,在app.vue文件里面监听推送消息事件</p>
<p>&nbsp;</p>
<p>代码示例&nbsp;app.vue 文件,&nbsp;在 onLaunch 里面</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> console.log('App Launch')</span>
const _self = <span style="color: rgba(0, 0, 255, 1)">this</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">监听系统通知栏消息点击事件</span>
plus.push.addEventListener('click', <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)">(message) {
   </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">处理点击消息的业务逻辑代码</span>
<span style="color: rgba(0, 0, 0, 1)">    console.log(message);
      plus.nativeUI.toast(</span>'click:'+<span style="color: rgba(0, 0, 0, 1)">JSON.stringify(message));
    </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">plus.nativeUI.toast('push click');</span>
<span style="color: rgba(0, 0, 0, 1)">    _self._handlePush(message);
}, </span><span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">监听接收透传消息事件</span>
plus.push.addEventListener('receive', <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)">(message) {
    console.log(message);
      plus.nativeUI.toast(</span>'receive:'+<span style="color: rgba(0, 0, 0, 1)">JSON.stringify(message));
    </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">处理透传消息的业务逻辑代码</span>
    <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">plus.nativeUI.toast('push receive');</span>
<span style="color: rgba(0, 0, 0, 1)">    _self._handlePush(message);
}, </span><span style="color: rgba(0, 0, 255, 1)">false</span>);</pre>
</div>
<p>获取 cid(clientid),需要在App端自行获取,代码如下</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">获取cid</span>
<span style="color: rgba(0, 0, 255, 1)">var</span> pinf =<span style="color: rgba(0, 0, 0, 1)"> plus.push.getClientInfo();
</span><span style="color: rgba(0, 0, 255, 1)">var</span> cid = pinf.clientid;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">客户端标识</span></pre>
</div>
<p>注意:</p>
<p>  </p>
<p>1.使用uni-app开发不需要引入SDK文件,在HbuilderX云打包时,云打包会自动根据manifest里面配置的 appid 、appkey 、appsecret 按需引入相关SDK</p>
<p>获取cid(clientid) : 在App内使用H5+ 进行获取</p>
<p>2.1 H5+获取 cid 文档&nbsp;:</p>
<p>http://www.html5plus.org/doc/zh_cn/push.html#plus.push.getClientInfo</p>
<p>3.&nbsp;uni-app使用plus注意事项&nbsp;&nbsp;&nbsp;&nbsp;https://uniapp.dcloud.io/use-html5plus</p>
<p>uni-app不需要 plus ready 在html中使用plus的api,需要等待plus ready。而uni-app不需要等,可以直接使用。而且如果你调用plus ready,反而不会触发</p>
<p>4.&nbsp;&nbsp;manifest.json<span class="Apple-converted-space">&nbsp;配置完成后,打包为测试包(自定义基座),测试推送消息</span></p>
<p>4.1 测试推送消息,如果不知道App设备的cid,可通过个推指定的 获取cid的app工具,安装到手机上,在开发者中心,选择创建推送/配置管理/故障排查菜单,输入cid工具里的验证码</p>
<p>4.2 手机上安装的App必须配置了&nbsp;&nbsp;appid&nbsp; 、appkey&nbsp;、appsecret,否则通过cid工具里面的验证码取不到CID</p>
<p><img src="https://img2020.cnblogs.com/blog/1699129/202007/1699129-20200709094439015-1522764011.png"></p>
<div class="jfk-bubble gtx-bubble" style="visibility: visible; left: 106px; top: 246px; opacity: 1">&nbsp;</div><br><br>
来源:https://www.cnblogs.com/ts119/p/13271817.html
頁: [1]
查看完整版本: uni-app 使用个推推送系统消息