z***@gmail.com
z***@gmail.com
  • 发布:2019-03-11 15:49
  • 更新:2024-03-25 10:34
  • 阅读:1792

【报Bug】安卓 plus.runtime.launcher plus.runtime.arguments获取错误

分类:uni-app

安卓下首次从浏览器启动app使用plus.runtime.launcher plus.runtime.arguments获取的参数是正常的,之后只要app没有重启,获取的结果都是 default 和空。
IOS下则正常拿到数据

        onShow() {  
            console.log('onShow')  
            this.checkArguments()  
        },  
        methods: {  
            checkArguments() {  
                // 判断是否从浏览器打开的app  
                let launcher = plus.runtime.launcher  
                let args = plus.runtime.arguments  
                console.log(plus.runtime.launcher)  
                console.log(plus.runtime.arguments)  
                if (launcher === 'scheme' && args) {  
                    setTimeout(() => {  
                        this.checkOrderType(args)  
                    }, 1000)  

                                        // 防止切换后台再切回来的时候重复处理  
                    plus.runtime.launcher = 'default'  
                    plus.runtime.arguments = ''  
                }  
                       }  
             }
2019-03-11 15:49 负责人:无 分享
已邀请:
z***@gmail.com

z***@gmail.com (作者)

1111

z***@gmail.com

z***@gmail.com (作者)

1111

z***@gmail.com

z***@gmail.com (作者)

11111

z***@gmail.com

z***@gmail.com (作者)

11111

秋凡

秋凡 - 全职接单 高效率、高质量 uniapp项目开发 服务器部署-运维 欢迎咨询 Q:377313813 vx:ran1ever

老铁 找到解决方案了没 头都要搞大了 11111

z***@gmail.com

z***@gmail.com (作者)

还没确认bug吗?这么多人遇到这个问题

DCloud_Android_ST

DCloud_Android_ST

把详细操作步骤写一下。感觉是业务逻辑导致的问题。测试未发现你描述的问题,应该是特定的环境下。所以需要你提供详细的操作流程和示例

z***@gmail.com

z***@gmail.com (作者)

安卓环境
浏览器执行 window.location.href = 'hbuilder://pages/xxx/xxx?order_num=123456'
此时跳转到app
app.vue中触发onShow方法

onShow() {    
            console.log('onShow')    
            this.checkArguments()    
        },    
        methods: {    
            checkArguments() {    
                // 判断是否从浏览器打开的app    
                let launcher = plus.runtime.launcher    
                let args = plus.runtime.arguments    
                console.log(plus.runtime.launcher)    
                console.log(plus.runtime.arguments)    

                // 防止切换后台再切回来的时候重复处理    
                plus.runtime.launcher = 'default'    
                plus.runtime.arguments = ''    
              }    
           }    
        }

第一次打印出
scheme
hbuilder://pages/xxx/xxx?order_num=123456

之后再回到浏览器刷新再跳转过来
此时打印出
default
''
后面只要app不杀掉都获取不到参数

z***@gmail.com

z***@gmail.com (作者)

@DCloud_Android_ST

秋凡

秋凡 - 全职接单 高效率、高质量 uniapp项目开发 服务器部署-运维 欢迎咨询 Q:377313813 vx:ran1ever

我去 终于确认bug了 这.......

DCloud_heavensoft

DCloud_heavensoft

qq群文件版的HBuilderX 1.7.2已经解决,请从群文件中下载预览版

  • z***@gmail.com (作者)

    好的 感谢

    2019-03-25 10:51

  • x***@qq.com

    老铁 并没有解决问题啊。。。只要app在后台,再次通过浏览器跳转就会报错


    14:00:50.440 [JS Framework] Failed to execute the callback function:  
    14:00:50.462 00:48.650 6001 6025 I console : + ReferenceError: Can't find variable: p__ERROR

    plus.runtime值还是原来的

    2019-04-22 14:03

x***@qq.com

x***@qq.com

老铁 并没有解决问题啊。。。只要app在后台,再次通过浏览器跳转就会报错

14:00:50.440 [JS Framework] Failed to execute the callback function:  
14:00:50.462 00:48.650 6001 6025 I console : + ReferenceError: Can't find variable: p__ERROR

plus.runtime值还是原来的

@DCloud_Android_zl

  • DCloud_Android_ST

    你这个问题已修复 请等待1.9.3版本

    2019-04-22 17:47

  • x***@qq.com

    回复 DCloud_Android_ST: 给老铁送上一波666

    2019-04-23 01:14

  • s7team丶杰克

    回复 DCloud_Android_ST:首次打开默认方式:launcher得到结果是defaul,在不关闭应用的情况下,打开快捷方式再用launcher得到的结果是shortcut,然后在不关闭的情况下,再次通过默认方式打开就得不到defaul的状态,还是shortcut,这个算是bug吗,可以修复吗?实现的场景是通过快捷方式会打开指定页面,如果目前的情况就是会存在默认方式打开也会被误以为快捷方式打开

    2019-05-12 00:48

g***@163.com

g***@163.com - 往事如风,长伴吾身

现在问题修复了吗,好使了吗

  • 今天回复我了吗

    我测了俩天了,我这边还是不行 0.0

    2019-07-10 14:58

  • g***@163.com

    回复 今天回复我了吗: 我都没敢用uni-app,原先的h5+还有一坨坑没解决掉呢,官方主力部队都在uni-app,步子是不是迈的有点大啊!!!!

    2019-07-10 15:02

  • 今天回复我了吗

    回复 g***@163.com: uniapp 是官方趋势啊,虽然有点小坑,但是得踩,官方最近还在弄weex,推荐去搞搞.

    2019-07-10 15:40

blueSky235

blueSky235

请问这个怎么配置,按照官网的来也配置了没用,能发下配置那一段的代码吗

"android":{  
  "schemes" : ["cvb://cvb"]  
},  
"ios":{  
  "urltypes" : [{  
     "urlschemes":"cvb://cvb"  
  }]  
},
5***@qq.com

5***@qq.com

这个问题到2022年还是有,H5 打开 APP

onShow: function() {
this.isBack = false
this.isUseApi = false

    // setTimeout(function () { // 被唤醒获取参数 需异步一下    
//   console.log('APP page show', plus.runtime.arguments)    
// }, 5000)  
    console.log('APP page show', plus.runtime.arguments)   
    // this.checkArguments(args)  
    // 重点是以下: 一定要监听后台恢复 !一定要   
    // plus.globalEvent.addEventListener('newintent', (e)=>{    
    //  console.log('newintent', plus.runtime.arguments)  
    //  this.checkArguments(args) // 检测启动参数    
    // })  
},  
onHide: function() {  
    this.isBack = true  
    plus.runtime.arguments = null  
},  

就这么简单的代码,安卓只要从后台切换到前台,这个plus.runtime.arguments值一直都不对,还是原来的值,即使onHide清空了都无效

  • DCloud_Android_ST

    什么设备,华为系手机?

    2022-09-09 10:48

  • 5***@qq.com

    回复 DCloud_Android_ST: vivo iQOO u5x,安卓11的版本,小米和华为以及iphone都正常,希望测试全面,不知能否修复一下,谢谢

    2022-09-09 18:20

  • DCloud_Android_ST

    回复 5***@qq.com: 只有vivo产品系统存在该问题是吗 这个我们测试下

    2022-09-09 18:55

  • 5***@qq.com

    回复 DCloud_Android_ST: 是的

    2022-11-01 17:56

  • 近水楼台

    回复 5***@qq.com: 兄弟,newintent这个事件能监听到吗?我这边一直不触发啊

    2023-02-20 16:53

近水楼台

近水楼台

兄弟,newintent这个事件能监听到吗?我这边一直不触发啊

y***@163.com

y***@163.com

作者你真的解决了吗?我用的3.8.12还是有这个问题呢

要回复问题请先登录注册