[dcloudio/uni-app]设置 app.mixin(GlobalShare)后,会导致setup scirpt语法使用onShareAppMessage不生效

2024-02-22 130 views
8

问题描述 使用了app.mixin(GlobalShare)进行分享设置; 会导致setup scirpt语法使用onShareAppMessage不生效

复现步骤 main.js 全局入口添加了

export const GlobalShare = {
  onShareAppMessage() {
    return {
      title: SHARE_DEFAULT_INFO.title,
      path: SHARE_DEFAULT_INFO.path,
      imageUrl: SHARE_DEFAULT_INFO.imageUrl,
      success() {
        uni.showToast({
          title: "分享成功",
        });
      },
      fail() {
        uni.showToast({
          title: "分享失败",
          icon: "none",
        });
      },
    };
  },
};

export function createApp() {
  const app = createSSRApp(App);
  app.use(Store);
  app.mixin(GlobalShare);
  return {
    app,
  };
}

页面自定义 不生效

<script lang="ts" setup>
import { onShareAppMessage } from "@dcloudio/uni-app";
onShareAppMessage(() => {
  return {
    title: "自定义分享标题",
    path: "/pages/home/index",
  };
});
</script>

系统信息:

  • 发行平台: 微信小程序
  • uni-app版本 3.0.0-alpha-3040820220424001

回答

6

同文 uni-app 3.0.0-alpha-3060920221114001

2

同文 uni-app 3.0.0-alpha-3060920221114001 3.0.0-alpha-3061020221121002 未解决

9

这个属于vue3的底层实现,setup里边的生命周期会比mixin先执行,参考:https://github.com/vuejs/core/issues/5918

可以自己绕一下

<script lang="ts" setup>
import { onShareAppMessage, onReady } from "@dcloudio/uni-app";
onReady(() => {
    onShareAppMessage(() => {
        return {
            title: "自定义分享标题",
            path: "/pages/home/index",
        };
    });
})
</script>
0

没用呀这个