工作中遇到的问题浅浅记录一下
跳转方法
TypeScript
//跳转系统 通讯录
function jumpContacts(tag : number) {
const context = UTSAndroid.getUniActivity()!;
const intent = new Intent(Intent.ACTION_PICK);
intent.setData(Uri.parse("content://com.android.contacts/data/phones"));
intent.setType("vnd.android.cursor.dir/phone_v2");
context.startActivityForResult(intent, tag.toInt());
}
回调监听
TypeScript
onLoad(() => {
console.log("sun,onLoad");
httpGetInfoData()
UTSAndroid.onAppActivityResult((requestCode : Int, resultCode : Int, data : Intent | null) => {
if (resultCode != -1) return;
if (data == null) return;
const context = UTSAndroid.getUniActivity()!;
const contactData = data.getData();
if (context == null || contactData == null) return;
const contentResolver = context.getContentResolver();
// const projection : Array<string> = [
// "data1", // 电话号码(Phone.NUMBER)
// "display_name" // 显示名称(Phone.DISPLAY_NAME)
// ];
const cursor = contentResolver.query(contactData, null, null, null, null);
let name = "";
let number = "";
if (cursor != null && cursor.moveToFirst()) {
try {
number = cursor.getString(cursor.getColumnIndexOrThrow("data1"));
name = cursor.getString(cursor.getColumnIndexOrThrow("display_name"));
// 清理电话号码中的空格和特殊字符
number = number.replace(/[()\s\-+]/g, '');
} catch (e) {
console.error("读取联系人失败", e);
} finally {
cursor.close();
}
}
console.log("name", name)
console.log("number", number)
if (requestCode == contact1Tag) {
contact1.value = number;
contact1Name.value = name;
} else if (requestCode == contact2Tag) {
contact2.value = number;
contact2Name.value = name;
}
})
});