i***@qq.com
i***@qq.com
  • 发布:2023-06-29 17:52
  • 更新:2024-02-27 18:07
  • 阅读:385

【报Bug】onActivityResult 在startActivityForResult时就调用了

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: win10

HBuilderX类型: 正式

HBuilderX版本号: 3.7.9

手机系统: Android

手机系统版本号: Android 10

手机厂商: 华为

手机机型: P40Pro

页面类型: vue

vue版本: vue2

打包方式: 云端

项目创建方式: HBuilderX

操作步骤:
<template>  
    <view class="content">  
        <button @click="jsCallNativeActivity()"> 打开自定义相机 </button>  
    </view>  
</template>  
<script>  
    export default {  
        data() {  
            return {  

            }  
        },  

        methods: {  
            jsCallNativeActivity() {  
                let cmPerPixel = (Math.floor(Math.random() * (150 - 50)) + 50).toString()  
                var main = plus.android.runtimeMainActivity();  
                var Intent = plus.android.importClass("android.content.Intent")  
                var intent = new Intent(main.getIntent())  
                let ComponentName = plus.android.importClass('android.content.ComponentName');  
                intent.setComponent(new ComponentName("com.***.***", "com.***.***.MainActivity"));  
                intent.putExtra("enableMask", "true");  
                intent.putExtra("cmPerPixel", cmPerPixel);  
                intent.putExtra("backActivityName", "annew");  
                intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);  

                // 请求码保证了,开始的新界面和返回的是同一个操作  
                var CODE_REQUEST = 1;  
                // 采用startActivityForResult开启新的界面,当界面关闭时可以处理返回结果,CODE REQUEST请求码是唯一标识  
                main.startActivityForResult(intent, CODE_REQUEST);  
                // 设置原生界面返回后的回调操作  
                main.onActivityResult = function(requestCode, resultCode, data) {  
                    uni.showModal({  
                        title: '提示',  
                        content: 'requestCode:' + requestCode + ',resultCode:' + resultCode + ',data:' + data,  
                        success: function(res) {  
                            if (res.confirm) {  
                                console.log('用户点击确定');  
                            } else if (res.cancel) {  
                                console.log('用户点击取消');  
                            }  
                        }  
                    });  

                    console.log(requestCode, resultCode, data);  
                }  

            }  

        }  
    }  
</script>  

预期结果:

在main.onActivityResul可以接收到返回的值

实际结果:

拿不到返回的值

bug描述:

在开启新界面的同时onActivityResult 就调用了,被调用APP返回值时onActivityResult 就不再触发了。
uniapp:

let cmPerPixel = (Math.floor(Math.random() * (150 - 50)) + 50).toString()    
                var main = plus.android.runtimeMainActivity();    
                var Intent = plus.android.importClass("android.content.Intent")    
                var intent = new Intent(main.getIntent())    
                let ComponentName = plus.android.importClass('android.content.ComponentName');    
                intent.setComponent(new ComponentName("com.***.***", "com.***.***.MainActivity"));    
                intent.putExtra("enableMask", "true");    
                intent.putExtra("cmPerPixel", cmPerPixel);    
                intent.putExtra("backActivityName", "annew");    
                intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);    

                // 请求码保证了,开始的新界面和返回的是同一个操作    
                var CODE_REQUEST = 1;    
                // 采用startActivityForResult开启新的界面,当界面关闭时可以处理返回结果,CODE REQUEST请求码是唯一标识    
                main.startActivityForResult(intent, CODE_REQUEST);    
                // 设置原生界面返回后的回调操作    
                main.onActivityResult = function(requestCode, resultCode, data) {    
                    uni.showModal({    
                        title: '提示',    
                        content: 'requestCode:' + requestCode + ',resultCode:' + resultCode + ',data:' + data,    
                        success: function(res) {    
                            if (res.confirm) {    
                                console.log('用户点击确定');    
                            } else if (res.cancel) {    
                                console.log('用户点击取消');    
                            }    
                        }    
                    });    

                    console.log(requestCode, resultCode, data);    
                }
2023-06-29 17:52 负责人:无 分享
已邀请:
1***@qq.com

1***@qq.com

一样的问题

要回复问题请先登录注册