<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>
- 发布:2023-06-29 17:52
- 更新:2024-02-27 18:07
- 阅读:385
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: win10
HBuilderX类型: 正式
HBuilderX版本号: 3.7.9
手机系统: Android
手机系统版本号: Android 10
手机厂商: 华为
手机机型: P40Pro
页面类型: vue
vue版本: vue2
打包方式: 云端
项目创建方式: HBuilderX
操作步骤:
预期结果:
在main.onActivityResul可以接收到返回的值
在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);
}