HarmonyOS 鸿蒙Next如何跳转到系统发送短信页面

发布于 1周前 作者 h691938207 来自 鸿蒙OS

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

5 回复

可以参考如下实现:

@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

回到顶部