HarmonyOS 鸿蒙Next如何跳转到系统发送短信页面
HarmonyOS 鸿蒙Next如何跳转到系统发送短信页面
let options: sms.SendMessageOptions = {
slotId: 0,
content: message,
destinationHost: phone,
sendCallback: sendCallback,
deliveryCallback: deliveryCallback
};
const promise = sms.sendShortMessage(options);
使用如上代码发送短信,提示需要ohos.permission.SEND_MESSAGES
权限。但是该权限属于系统级别的。
添加后是无法安装的,需要acl
权限。而需求不是在app
中直接发送短信。只需要跳转到系统短信页面即可。如何跳转到系统发送短信页面。
更多关于HarmonyOS 鸿蒙Next如何跳转到系统发送短信页面的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
可以参考如下实现:
@Entry
@Component
struct JumpMessage {
private context = getContext(this) as common.UIAbilityContext
startMMSAbilityExplicit() {
// 这里完善联系人和号码
let params: Array<Object> = [new Contact("张三", 13344556677)];
let want: Want = {
bundleName: "com.ohos.mms",
abilityName: "com.ohos.mms.MainAbility",
parameters: {
contactObjects: JSON.stringify(params),
pageFlag: "conversation",
// 这里填写短信内容
content: "我才是测试内容"
}
};
this.context.startAbilityForResult(want).then((data) => {
console.log("Success" + JSON.stringify(data))
}).catch(() => {
console.log("error")
})
}
build() {
Row() {
Column() {
Button('发送短信')
.onClick(() => {
this.startMMSAbilityExplicit();
})
}
.width('100%')
}
.height('100%')
}
}
更多关于HarmonyOS 鸿蒙Next如何跳转到系统发送短信页面的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
oh,dear !Contact是哪里得,引用不到。
Contact 是自定义的一个类
class Contact{
contactName:string
telephone: string
// content:String
constructor(name: string, phone: string) {
this.contactName = name
this.telephone = phone
}
}
好的 谢谢,可以了。主要是不知道要传过去的对象key是什么。。。
在HarmonyOS(鸿蒙)系统中,若要实现跳转到系统发送短信页面,你可以利用Intent机制。鸿蒙系统提供了与Android类似的Intent功能,用于在应用间传递数据和请求服务。以下是一个基本的实现方法:
首先,确保你的应用具有发送短信的权限。在config.json
文件中添加以下权限配置:
"module": {
"reqPermissions": [
"ohos.permission.SEND_SMS"
]
}
然后,在你的代码中构造并发送一个Intent来启动短信发送页面。以下是一个示例代码片段(使用ArkUI的eTS语言):
import intent from '@ohos.intent';
function sendSmsIntent() {
let smsIntent = new intent.Intent();
smsIntent.setAction(intent.Action.ACTION_SENDTO);
smsIntent.setData(intent.Uri.parse("smsto:"));
smsIntent.putExtra("sms_body", "Hello, this is a test message."); // 可选:预填充短信内容
smsIntent.setType("vnd.android-dir/mms-sms");
intent.startActivity(smsIntent);
}
// 调用函数
sendSmsIntent();
这段代码创建了一个Intent,设置其动作为ACTION_SENDTO
,数据URI为smsto:
,并可选地添加了短信内容。最后,通过startActivity
方法启动该Intent,从而跳转到系统的短信发送页面。
如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html,