栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

flutter 极光推送厂商推送无法点击问题

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

flutter 极光推送厂商推送无法点击问题

我找了各种博客没有找到解决办法,自己找到了办法,来记录下,来帮助没有解决这个问题的朋友,这个涉及到极光推送的下发策略,极光推送当你集成了厂商推送了,就全部优先用产商推送了,导致大部分手机都收不到flutter的回调方法,但是能收到推送,点击通知也不会做任何处理。所以我们修改极光推送的策略,让app在线的时候时候用极光推送,不在线了用厂商推送,这个需要后台改下。具体要求看下面的图

这个是极光官网推送设置,然后看后台怎么设置

图片截图不是很全,但还是能看出来具体的查看极光的文档链接http://docs.jiguang.cn/jpush/server/push/rest_api_v3_push/#options
到这里我们就完成了极光推送集成了厂商推送导致flutter的回调收不到问题,但是我们的厂商推送的集成还是没有用,下面我接着说。
集成集成厂商推送,集成的步骤很多人都说过了我就不写了,我们直说收到推送如何点击进入app,官方回他一样要我们看原生的,所以我们还是看文档,我就拿华为的来说,魅族我没有集成不知道,但小米和vivo一样的,oppo有点不同。我们在看图



从这两张图就可以看到又需要服务器在推送时候传入uri_activity:包名.要跳转的activity,所以我们只要配置好这个activity就行了,我们看下官方给的样例

点击后直接跳转到你指定的页面,然后在可以得到服务传过来的值,来进行具体操作,当然如果app杀掉情况下我们只需要打开app,不需要操作的话,是不是可以直接给服务器传我们的启动页MainActivity

            
            
            
            
              
               
               
           
            
                
                
            
        

这个我没有测试过,给大家去试了,没有问题可以告诉我下,可以看到,我就在系统生成的地方加了

android:exported="true"


 
               
               
 

两部分代码,如果不行的话,大家就新建一个activity,点击跳转到这个activity,然后activity跳转到flutter页面就可以,到这基本就完成。
activity跳转到flutter网上也很多,我就随便写两个列子,因为我这边也有问题,不是很好,大家有更好的可以和我说下application设置引擎

class MyApplication : Application() {

    lateinit var flutterEngine: FlutterEngine

    override fun onCreate() {
        super.onCreate()
        flutterEngine = FlutterEngine(this)
        flutterEngine.dartExecutor.executeDartEntrypoint(
            DartExecutor.DartEntrypoint.createDefault()
        )
        FlutterEngineCache
            .getInstance()
            .put("engine_id", flutterEngine)
    }

    override fun onTerminate() {
        //销毁flutter引擎
        flutterEngine.destroy()
        super.onTerminate()
    }


}

然后点击跳转的activity启动flutter页面

try {
            startActivity(
                FlutterActivity
                    .withCachedEngine("engine_id")
                    .build(this)
            )
            finish()
        }catch (e:Exception){
            var intent = Intent(this, MainActivity::class.java)
            startActivity(intent)
            finish()
        }

因为我manifest里面没有注册FlutterActivity,所以跳转的时候有时候报错FlutterActivity没有在manifest里面注册,有时候没有,但是注册了,给我加一个默认的topbar,所以我就用的这种办法,不是很好,大家有更好的办法可以告诉我一下。到这就结束了

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/462250.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号