Skip to content
This repository has been archived by the owner on Jun 12, 2023. It is now read-only.

请问离线推送预计什么时候能上呢? #16

Closed
iyuhang opened this issue Apr 8, 2020 · 51 comments
Closed

请问离线推送预计什么时候能上呢? #16

iyuhang opened this issue Apr 8, 2020 · 51 comments

Comments

@iyuhang
Copy link

iyuhang commented Apr 8, 2020

我们主要功能已经集成完了
现在就差离线推送了,请问您这边有预计的时间吗
非常感谢

@JiangJuHong
Copy link
Owner

你好,离线推送目前没有确定具体时间,但是应该会在四月内

@AlanJN
Copy link

AlanJN commented May 11, 2020

同求 推送时间,辛苦~

@JiangJuHong
Copy link
Owner

抱歉久等,预计这个周末

@raieoncc
Copy link

支持 有捐赠通道吗? 想尽点微薄之力

@JiangJuHong
Copy link
Owner

JiangJuHong commented May 14, 2020

支持 有捐赠通道吗? 想尽点微薄之力

感谢您的支持,目前没有捐赠通道哦!如果�你对这个插件支持,可以给一个 Star!

@JiangJuHong
Copy link
Owner

离线推送现已提供两个接口:setOfflinePushSettingssetOfflinePushToken,具体Token和bussid获得方式根据腾讯云文档决定。

@iyuhang
Copy link
Author

iyuhang commented May 18, 2020

@JiangJuHong 👍
现在是能支持安卓各个厂商版的对吧,我看参数里写了

@JiangJuHong
Copy link
Owner

不同厂商需要根据腾讯云文档单独集成SDK,并获得Token

@JiangJuHong
Copy link
Owner

插件升级到 0.2.28,并在Demo中增加了小米推送的配置方法

@iyuhang
Copy link
Author

iyuhang commented May 19, 2020

@JiangJuHong 👍
确实如文档里写的没有安卓基础还是有难度
华为、oppo、vivo、小米,每个都很“特别”
先啃一下

@JiangJuHong
Copy link
Owner

JiangJuHong commented May 19, 2020 via email

@iyuhang
Copy link
Author

iyuhang commented May 19, 2020

@JiangJuHong
可以肯定没有类似的插件,而且出这样的插件一定非常牛,在的很多群都经常有人问到这个

@Mzrong
Copy link

Mzrong commented May 19, 2020

腾讯有个移动推送(信鸽)的flutter插件,你看看适合不。https://cloud.tencent.com/document/product/548/41515

@JiangJuHong
Copy link
Owner

腾讯有个移动推送(信鸽)的flutter插件,你看看适合不。https://cloud.tencent.com/document/product/548/41515

感谢您的建议,初步尝试了一下,通过接入过程中发现存在一些问题,可能会不适用于该项目,看来只有找找其它办法了

@iyuhang
Copy link
Author

iyuhang commented May 22, 2020

@JiangJuHong
尝试了两天,实在搞不动安卓,蹲你的插件了~ 🥇

@JiangJuHong
Copy link
Owner

感谢支持,但是由于工作时间安排,我不确定什么时候能完成,我尽量本周末封装小米推送出来,其次的华为推送等就很简单了

@iyuhang
Copy link
Author

iyuhang commented May 22, 2020

image
现在我这边统计到的安卓访问分布可以参考~ 华为是真的老大 😃

@JiangJuHong
Copy link
Owner

小米推送插件已经发布 xiao_mi_push_plugin,使用文档已经添加到本文档”插件集成“步骤

@iyuhang
Copy link
Author

iyuhang commented May 25, 2020

@JiangJuHong 太牛了,给你大大的赞 👍

@JiangJuHong
Copy link
Owner

感谢支持

@iyuhang
Copy link
Author

iyuhang commented May 25, 2020

华为、oppo、vivo有计划吗 🥇

@JiangJuHong
Copy link
Owner

抱歉,由于工作安排,暂时未有其它插件支持安排,”或许我会在周末空闲时间进行集成“。�如果您感兴趣,可参考 �小米Push SDK 进行集成

@iyuhang
Copy link
Author

iyuhang commented May 25, 2020

image
真是太难了,我这的用户一直反馈安卓关到后台就收不到消息了,现在用的极光的推送,ios 没问题,安卓只有打开应用才有推送。。。godkillme
华为和小米的接入应该差不太多吧,我再研究一下

@JiangJuHong
Copy link
Owner

看了一下,你们用户群体大多是华为,我可以本周末优先将华为集成进来

@iyuhang
Copy link
Author

iyuhang commented May 25, 2020

那真是太感谢了!

@Mzrong
Copy link

Mzrong commented Jun 4, 2020

您好,请教一下,在IOS端,deviceToken是需要作怎样的处理。感谢大佬!
image
我这边的处理是这样子的
image
image

@Mzrong
Copy link

Mzrong commented Jun 4, 2020

image
真是太难了,我这的用户一直反馈安卓关到后台就收不到消息了,现在用的极光的推送,ios 没问题,安卓只有打开应用才有推送。。。godkillme
华为和小米的接入应该差不太多吧,我再研究一下

老哥,IOS端如何实现,我这边卡住了。大佬能否指点一下

@JiangJuHong
Copy link
Owner

IOS 使用 APNs 获得Token,可参考文档 https://cloud.tencent.com/document/product/269/44517,据我所知,Flutter 插件库似乎已经提供了 APNs 相关插件

@JiangJuHong
Copy link
Owner

对于任何设备,我们只需要获得Token,然后调用 setOfflinePushToken 方法将Token上传到腾讯云即可

@iyuhang
Copy link
Author

iyuhang commented Jun 5, 2020

找了个曲线救国的路线,mob 提供了各个厂商的 api 推送的 flutter 插件
现在可以通过服务端调用它的接口也实现消息离线推送
目前测试下来发现大多数时候杀掉进程后能收到,但有时又收不到,oppo 收取状况最不好
之前 @JiangJuHong 大神提供了小米插件基本是收取没有有问题的
免费版有消息每分钟最多推送500条的限制
先可做一个临时方案
https://www.mob.com/wiki/detailed?wiki=MobPushForFlutterfenlei&id=136

@JiangJuHong
Copy link
Owner

是的,正因为我发现了信鸽、极光等插件的收费策略,所以打算对部分常用厂商提供PushSDK Flutter 支持,用户也只需要承担腾讯云IM费用即可.
实际上,我现在正在集成华为推送,但是不幸的是遇到了一些问题,我会尝试解决它.

@iyuhang
Copy link
Author

iyuhang commented Jun 5, 2020

无条件支持老哥,我现在在服务端写成动态的,等待切换到你的插件上,哈哈

@Mzrong
Copy link

Mzrong commented Jun 5, 2020

老哥有讨论群加一个吗

@JiangJuHong
Copy link
Owner

目前还没有,如果意向参与讨论人数多的话,我们可以创建一个.

@Mzrong
Copy link

Mzrong commented Jun 6, 2020

老哥那你创建一个群嘛,把群号发出来,大家一起讨论

@iyuhang
Copy link
Author

iyuhang commented Jun 7, 2020 via email

@Mzrong
Copy link

Mzrong commented Jun 8, 2020

你好大佬,这边我想提一个小小的意见。有关IOS的APNs推送的话,插件库提供的获取device_token都是返回的16进制的字符串,而我看您的源码是使用的是str.data(using: String.Encoding.utf8)来将字符串转为Data,这样的话,我调用TencentImPlugin.setOfflinePushToken上传token时,收不到离线消息推送,一直是报错token不正确。所以,这边我实现了一个将字符串转为NSData的方法,这样就没有问题了。一个小小的建议,大佬莫见怪。我们项目的离线推送也全部好了,这里谢谢大佬提供的插件!

@JiangJuHong
Copy link
Owner

如果你的方法更优,我们可以将它引入进来,不过需要注意以下问题:

  1. 是否会出现兼容问题
  2. 是否会影响到之前内容

如果以上两个答案是否定的,能否提供PR支持,非常感谢. @Mzrong

@Mzrong
Copy link

Mzrong commented Jun 8, 2020

大佬您好,只是我这边处理获取到的device_token的方式不一样(在flutter_apns这个插件中,将device_token转成了hex string),所以可能针对每个人可能处理方式不同。这边我附上我的代码(配合插件有flutter_apns、apns_flutter)

/**
 * 将hex string 转为Data
*/
private func dataWithHexString(hex: String) -> Data {
        var hex = hex
        var data = Data()
        while(hex.count > 0) {
            let index1 = hex.index(hex.startIndex, offsetBy: 2)
            let index2 = hex.index(hex.endIndex, offsetBy: 0)
            let c: String = String(hex[hex.startIndex..<index1])
            hex = String(hex[index1..<index2])
            var ch: UInt32 = 0
            Scanner(string: c).scanHexInt32(&ch)
            var char = UInt8(ch)
            data.append(&char, count: 1)
        }
        return data
    }
/**
     * 设置离线推送Token
     */
    private func setOfflinePushToken(call: FlutterMethodCall, result: @escaping FlutterResult) {
        if let token = CommonUtils.getParam(call: call, result: result, param: "token") as? String,
           let bussid = CommonUtils.getParam(call: call, result: result, param: "bussid") as? UInt32 {

            let config = TIMTokenParam();
//            config.token = token.data(using: String.Encoding.utf8);
            config.token = dataWithHexString(hex: token)
            config.busiId = bussid;
            TIMManager.sharedInstance().setToken(config, succ: {
                result(nil);
            }, fail: TencentImUtils.returnErrorClosures(result: result))
        }
    }

在IOS13上是没有问题的,其他版本没有测试过。

@dancebear
Copy link

@Mzrong Mzrong;非常感谢,使用你的方法在iOS13下通过

@JiangJuHong
Copy link
Owner

大佬您好,只是我这边处理获取到的device_token的方式不一样(在flutter_apns这个插件中,将device_token转成了hex string),所以可能针对每个人可能处理方式不同。这边我附上我的代码(配合插件有flutter_apns、apns_flutter)

/**
 * 将hex string 转为Data
*/
private func dataWithHexString(hex: String) -> Data {
        var hex = hex
        var data = Data()
        while(hex.count > 0) {
            let index1 = hex.index(hex.startIndex, offsetBy: 2)
            let index2 = hex.index(hex.endIndex, offsetBy: 0)
            let c: String = String(hex[hex.startIndex..<index1])
            hex = String(hex[index1..<index2])
            var ch: UInt32 = 0
            Scanner(string: c).scanHexInt32(&ch)
            var char = UInt8(ch)
            data.append(&char, count: 1)
        }
        return data
    }
/**
     * 设置离线推送Token
     */
    private func setOfflinePushToken(call: FlutterMethodCall, result: @escaping FlutterResult) {
        if let token = CommonUtils.getParam(call: call, result: result, param: "token") as? String,
           let bussid = CommonUtils.getParam(call: call, result: result, param: "bussid") as? UInt32 {

            let config = TIMTokenParam();
//            config.token = token.data(using: String.Encoding.utf8);
            config.token = dataWithHexString(hex: token)
            config.busiId = bussid;
            TIMManager.sharedInstance().setToken(config, succ: {
                result(nil);
            }, fail: TencentImUtils.returnErrorClosures(result: result))
        }
    }

在IOS13上是没有问题的,其他版本没有测试过。

0.2.37 版本中引入了该方法,但是暂未全局替换,只替换了 setOfflinePushToken 接口

@JiangJuHong
Copy link
Owner

华为离线推送插件已经集成到Demo,并已更新相应文档,请参考 华为离线推送集成步骤 进行集成!

@JiangJuHong
Copy link
Owner

JiangJuHong commented Jul 6, 2020

接下来的计划为 开发 OPPO推送SDK 插件.

@iyuhang
Copy link
Author

iyuhang commented Jul 6, 2020 via email

@JiangJuHong
Copy link
Owner

发现魅族开发者账号申请很复杂,所以暂定先进行 OPPO、VIVO插件

Repository owner deleted a comment from MrshawY Jul 30, 2020
@JarnTang
Copy link

JarnTang commented Sep 19, 2020

有个疑问:这个离线推送,跟腾讯的 TPNS 有区别么

是不是直接引入腾讯的 TPNS 包就可以了,腾讯也提供flutter的版本 ,官方地址: https://git.code.tencent.com/tpns/XG-Flutter-Plugin.git

@JiangJuHong
Copy link
Owner

JiangJuHong commented Sep 21, 2020

有个疑问:这个离线推送,跟腾讯的 TPNS 有区别么

是不是直接引入腾讯的 TPNS 包就可以了,腾讯也提供flutter的版本 ,官方地址: https://git.code.tencent.com/tpns/XG-Flutter-Plugin.git

该项目为信鸽插件,通过接入过程中发现存在一些问题,可能会不适用于该项目=

@JiangJuHong
Copy link
Owner

QQ群相关信息已更新到插件主页,欢迎加入QQ群进行讨论

@JarnTang
Copy link

JarnTang commented Oct 9, 2020

发送离线推送消息有demo么,有的话是在example下的哪个文件呢 @JiangJuHong

@JiangJuHong
Copy link
Owner

demo目前仅包含注册和订阅,暂不包含发送,如果你需要发送,请参考腾讯云TRTC离线推送相关文档。

@JiangJuHong
Copy link
Owner

FlutterTencentIM插件已更新至 1.0.x,基于v5 SDK,优化参数、枚举等内容,如需要更新,请参考文档进行更新。注意:由于腾讯云 5.x api改动较大,请不要混用 5.x 和 4.x 接口,对应插件版本: 5.x -> 1.x ,4.x -> 0.x。项目地址:https://github.com/JiangJuHong/FlutterTencentImPlugin

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants