| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- import request from "../utils/request.js";
- import ShareConfigModel from "../model/ShareConfigModel";
- /**
- * @description:检查分享配置
- * @return {*}
- */
- const checkShareConfig = async () => {
- try {
- // 加载分享配置
- let shareConfigInfo = ShareConfigModel.getInstance().getInfo();
- if (
- Object.getOwnPropertyNames(shareConfigInfo).length === 0 ||
- shareConfigInfo.title === ""
- ) {
- // 获取服务端分享配置
- const res = await request.api("COMMON", {
- do: "getShareConfig",
- });
- res.imageUrl = res.image_url;
- ShareConfigModel.getInstance().load(res);
- }
- return Promise.resolve();
- } catch (error) {
- return Promise.reject(error);
- }
- };
- /**
- * @description: 开启系统分享
- * @return {*}
- */
- export const showShareMenu = async () => {
- try {
- // 开启分享按钮
- tt.showShareMenu({
- withShareTicket: true,
- });
- await checkShareConfig();
- let shareData = buildShareData({});
- tt.onShareAppMessage(() => {
- return shareData;
- });
- return Promise.resolve();
- } catch (error) {
- return Promise.reject(error);
- }
- };
- /**
- * @description: 主动发起分享
- * @param {*} data
- * @return {*}
- */
- export const shareAppMessage = async (data) => {
- console.log("shareAppMessage入参" + JSON.stringify(data));
- try {
- await checkShareConfig();
- let shareData = buildShareData(data);
- console.log("发起分享参数" + JSON.stringify(shareData));
- // 发起分享
- tt.shareAppMessage(shareData);
- return Promise.resolve();
- } catch (error) {
- return Promise.reject(error);
- }
- };
- const buildShareData = (data) => {
- let shareConfigInfo = ShareConfigModel.getInstance().getInfo();
- let shareData = {
- title: shareConfigInfo.title,
- imageUrl: shareConfigInfo.imageUrl,
- query: shareConfigInfo.query,
- };
- let share_ext = "";
- // 记录分享透传参数
- if (data.hasOwnProperty("title") && data.title) shareData.title = data.title;
- if (data.hasOwnProperty("imageUrl") && data.imageUrl)
- shareData.imageUrl = data.imageUrl;
- if (data.hasOwnProperty("ext") && data.ext) share_ext = data.ext;
- //前面这个share_ext是研发透传进来的,后面这个是服务端传进来的
- shareData.query += shareConfigInfo.share_ext;
- if (share_ext) {
- shareData.query += `&share_ext=` + share_ext;
- }
- return shareData;
- };
- /**
- * @description: 主动监听研发透传参数
- * @param {*} data
- * @return {*}
- */
- export const onShareAppMessage = (data, menus = ["shareAppMessage"]) => {
- console.log("onShareAppMessage入参" + JSON.stringify(data));
- //先off,再on
- tt.offShareAppMessage();
- let shareData = buildShareData(data);
- tt.showShareMenu({
- withShareTicket: true,
- menus: menus,
- });
- tt.onShareAppMessage(() => {
- return shareData;
- });
- };
|