HarmonyOS 卡片中的postCardAction能用scheme直接呼到客户端某个页面吗?

卡片中的postCardAction能直接用scheme直接呼到宿主某个页面么,还是需要先呼到宿主EntryAbility,然后再由EntryAbility去分发到具体页面?

例如目前的scheme是

sinaweibo://searchall?q=%23%E7%8E%8B%E4%B8%80%E5%8D%9A%E6%8D%A1%E8%B5%B7%E6%8E%89%E8%90%BD%E7%9A%84%E5%9B%BD%E6%97%97%23&luicode=10000360&lfid=widget&logfinish=1&extparam=c_type%3D36%26third_source_type%3Dchannel%26out_flag%3Dchannel

如何设置postCardAction,才能直接呼到宿主的这个搜索结果页面。

备注,直接按api下面的格式填写,不生效

postCardAction(this, {
  action: 'router',
  uri: item.appScheme
});
阅读 410
1 个回答

支持拉起具体页面,目前postCardAction支持三种方式,分别是router、call、message。

参考代码:

/**
 * 卡片组件
 */
@Entry
@Component
struct WidgetCard {
  build() {
    Column() {
      Button('router跳转')
        .onClick(
          () => {
            postCardAction(
              this,
              {
                action: 'router',
                bundleName: 'com.example.demo',
                abilityName: 'IndexAbility',
                params: {
                  message: 'testForRouter' // 自定义要发送的message
                }
              }
            );
          }
        )

      Button('message消息')
        .onClick(
          () => {
            postCardAction(
              this,
              {
                action: 'message',
                params: {
                  message: 'testForMessage' // 自定义要发送的message
                }
              }
            );
          }
        )

      // 需要申请ohos.permission.KEEP_BACKGROUND_RUNNING权限
      Button('call启动')
        .onClick(
          () => {
            postCardAction(
              this,
              {
                action: 'call',
                bundleName: 'com.example.demo',
                abilityName: 'IndexAbility',
                params: {
                  method: 'testForCall', // 自定义调用的方法名,必填
                  message: 'testForCall' // 自定义要发送的message
                }
              }
            );
          }
        )
    }
    .width('100%')
    .height('100%')
  }
}
logo
HarmonyOS
子站问答
访问
宣传栏