Egret小游戏接入分享功能

引言

有个人小游戏上线经验的小伙伴们,都或多或少有过这样子的遭遇,游戏上线之后没有人玩,这是很正常的一种现象,因为单单靠搜索这一个自然流量的话,很难在众多游戏产品中脱颖而出,因此打开我们游戏的每一个玩家都是有缘人。我们希望这个有缘人能够帮我们推广一下,那么我们就要接入分享功能。

为什么小游戏需要接入分享功能

在现代社交网络的时代,分享已经成为人们交流和表达的一种重要方式。小游戏作为一种娱乐形式,也开始逐渐意识到分享功能的重要性。接入分享功能有以下几个方面的好处。

  • 首先,分享功能可以帮助小游戏扩大用户群体。当玩家喜欢某个小游戏时,他们通常会愿意将这个好玩的游戏分享给朋友和亲人。通过分享功能,玩家可以轻松地将游戏链接或截图发送给其他人,从而吸引更多的用户来体验游戏。这种口碑传播可以帮助小游戏扩大知名度,吸引更多的玩家。

  • 其次,分享功能可以提升小游戏的社交互动性。现在的许多小游戏都有多人合作或对战的玩法,而分享功能可以让玩家方便地邀请朋友来一起玩游戏。通过分享功能,玩家可以发送游戏邀请或挑战给其他玩家,增加游戏的社交互动性。这种社交互动可以让游戏更加有趣,也能够帮助玩家建立更多的游戏社交关系。

  • 第三,分享功能可以增加小游戏的用户留存率。当玩家在游戏中取得好成绩或解锁某个新关卡时,他们通常会希望与朋友分享自己的成就。通过分享功能,玩家可以将自己的游戏进度或成就分享到社交媒体上,让其他人看到并与他们互动。这种分享可以激发其他玩家的兴趣,促使他们继续玩游戏,提高用户的留存率。

综上所述,接入分享功能对小游戏来说具有重要意义。分享功能可以帮助小游戏扩大用户群体,提升游戏的社交互动性,同时也能够增加用户的留存率。因此,在开发小游戏时,我们应该重视分享功能的设计与实现,以增强游戏的用户体验和社交性。

小游戏分享API解析

1.wx.showShareMenu(Object object)

  • 它的功能主要是设置用户点击右上角菜单时,弹出页面中"转发给朋友"和"分享给朋友圈"的功能。

  • 代码示例:

    wx.showShareMenu({
      withShareTicket: true,
      menus: ['shareAppMessage', 'shareTimeline']
    })
    
  • 其中"shareAppMessage"表示“发送给朋友”按钮,"shareTimeline"表示“分享到朋友圈”按钮

  • 注意事项:显示“分享到朋友圈”按钮时必须同时显示“发送给朋友”按钮,显示“发送给朋友”按钮时则允许不显示“分享到朋友圈”按钮

  • 图示如下:

2.wx.onShareAppMessage(function listener)

  • 它的主要功能是监听用户点击右上角菜单的「转发」按钮时触发的事件。

  • 通过这个接口我们可以修改通过右上角菜单分享时分享卡片的标题和图片。

  • 代码示例:

    wx.onShareAppMessage(() => {
        return {
          title: '转发标题',
          imageUrl: '' // 图片 URL
        }
    })
    
  • 我们也可以不使用该API,那么分享时的标题默认是游戏名字,图片则是当前游戏界面截屏。

  • 图示如下:

3.wx.shareAppMessage(Object object)

  • 它的功能主要是主动弹出选择好友或者群聊界面,然后直接分享。

  • 代码示例:

    wx.shareAppMessage({
      title: '分享标题',
      imageUrl: '分享图片URL',
      query: '分享参数'
    });
    
  • 和前面的一样可以修改分享的标题、图片、还有分享的参数,可以通过这个参数去判断分享的来源。

4.wx.shareMessageToFriend(Object object)

  • 它的主要功能是给指定的好友分享游戏信息,该接口只可在开放数据域下使用。接收者打开之后,可以用 wx.modifyFriendInteractiveStorage 传入参数 quiet=true 发起一次无需弹框确认的好友互动。
  • 这个接口的好处就是能够在被分享的客户端可以获取到分享者的传入的信息。相对于前面的分享接口,能够知道分享是否成功。

Egret小游戏接入分享

1.首先在启动游戏的时候注册分享事件。

registerEvent(): void {
    //转发
    wx.showShareMenu({
        withShareTicket: true,
        menus: ["shareAppMessage", "shareTimeline"]
    });
    wx.onShareAppMessage(() => {
        this.onShareAppMessageCall && this.onShareAppMessageCall();

        var data = {
            title: SdkManager.instance.getRandShareTips(),//分享的标题
            // imageUrlId: WxSdkConfigure.imageUrlId, //通过MP系统审核的图片编号
            // imageUrl: WxSdkConfigure.imageUrl, //通过MP系统审核的图片地址
            query: ""
        };
        return data;
    });

    //分享朋友圈
    wx.onShareTimeline(() => {
        return {
            // title: WxSdkConfigure.shareTimelineTitle,
            // imagePreviewUrlId: WxSdkConfigure.imagePreviewUrlId,
            // imagePreviewUrl: WxSdkConfigure.imagePreviewUrl,
            query: this.getQuery()
        }
    });
}

2.由于现在分享的接口不会返回分享是否成功和失败,我们做了个处理:用户打开分享界面3秒后返回到游戏则判断分享成功。

wx.onShow(() => {
    console.log("wx.onShow");
    if (this.shareTick > 0 && this.shareCallback) {
        if (Date.now() - this.shareTick >= 3000) {
            // console.log("share success");
            this.shareCallback();
            // App.ViewManager.open(ViewConst.Tips, "分享成功");
        }
        else {
            // console.log("share fail");
            // App.ViewManager.open(ViewConst.Tips, "分享失败,不能获得奖励");
        }
        this.shareTick = 0;
        this.shareCallback = null;
    }
});

3.主动拉起分享。

shareAppMessage(title: string = "", imageUrlId: string = "", imageUrl: string = "", query: any = null, shareCallback: any = null): void {
    this.shareTick = Date.now();
    this.shareCallback = shareCallback;

    title = title;
    imageUrlId = imageUrlId;
    imageUrl = imageUrl;
    var data = {
        title: title,
        imageUrlId: imageUrlId,
        imageUrl: imageUrl,
        query: ""
    };

    wx.shareAppMessage(data);
    this.onShareAppMessageCall && this.onShareAppMessageCall();
}

4.开放域直接分享。

private share(index) {
    if (this.curList[index]) {
        wx.shareMessageToFriend({
            openId: this.curList[index].openid, // 这里填写好友的openid
            title: this.tips2[index],
            // imageUrl: ''
        })
    }
}

总结

本文的重点内容主要有以下几点,不知道小伙伴们是否已经理解:

  • 小游戏接入分享的重要意义。
  • 小游戏接入分享的常用API。
  • Egret小游戏接入分享示例代码。

本系列是《从零开始开发贪吃蛇小游戏到上线系列》,欢迎大家订阅。游戏已经上线大家可以搜索小游戏《贪吃蛇掌机经典》进行体验。

此外笔者还有2款已经上线的小游戏《填色之旅》《重力迷宫球》大家也可以自行搜索体验。

感兴趣的小伙伴记得关注"亿元程序员"哦,学习小游戏开发不迷路。欢迎大家一起交流。

喜欢的可以点个赞同、点个在看哦!谢谢大家。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,284评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,115评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,614评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,671评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,699评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,562评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,309评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,223评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,668评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,859评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,981评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,705评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,310评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,904评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,023评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,146评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,933评论 2 355

推荐阅读更多精彩内容