CocosCreator微信小游戏带参数分享

本文详细介绍了微信小游戏中被动分享和主动分享的实现方式。被动分享通过点击小程序右上角菜单进行,需调用wx.showShareMenu()并定义wx.onShareAppMessage事件;主动分享则由按钮触发,主要使用wx.shareAppMessage API。文章提供了CocosCreator中的具体代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

微信小游戏分享分为被动分享和主动分享。官方文档:https://developers.weixin.qq.com/minigame/dev/tutorial/open-ability/share/share.html

被动分享

被动分享为点击小程序右上角,在弹出的菜单栏中选择分享按钮进行分享。菜单栏要显示分享按钮,必须先开启分享wx.showShareMenu();,然后定义wx.onShareAppMessage事件,此事件需要 return 一个 Object,用于自定义转发内容。
Cocos中代码如下:

    private openWXShareMenu(): void {
        wx.showShareMenu();
        cc.loader.loadRes("texture/shareImg", function (error, data) {
            wx.onShareAppMessage(function (res) {
                return {
                    title: "不服来战啊",
                    imageUrl: data.url,
                    success(res) {
                        console.log("转发成功");
                    },
                    fail(res) {
                        console.log("转发失败");
                    }
                }
            });
        });
    }

主动分享

主动分享为通过其它按钮调用微信的分享功能。核心API为:wx.shareAppMessage
传参只需要设置上述API中的query参数。

CocosCreator中:

        if (cc.sys.isMobile && typeof (wx) !== "undefined") { //WX小游戏移动设备环境下            
            cc.loader.loadRes("texture/shareImg", function (error, data) {
                wx.shareAppMessage({
                    title: "嘿嘿,我做了一个关卡,不服来战!",
                    imageUrl: data.url,
                    query: "diy=" + jsonStr,
                    success(res) {
                        wx.showToast({
                            title: "分享成功"
                        });
                        console.log("分享成功" + res);
                    }
                fail(res) {
                        console.log("分享失败" + res);
                    }
                });
            });
        }

texture/shareImg为放在CocosCreator中resources目录下的图片文件。

取参数:
wx.getLaunchOptionsSync()可以获得小游戏启动相关参数。

        if (cc.sys.isMobile && typeof (wx) !== "undefined") { //WX小游戏移动设备环境下
            var launch = wx.getLaunchOptionsSync();
            var queryData = launch.query;
            var diyData = queryData.diy;
            if (diyData != null && diyData != "") {
                console.log("微信透传参数:" + diyData);
            }
            else {
                console.log("微信平台无透传参数");
            }
        }
### Cocos Creator 微信小程序 原生广告集成 #### 创建和初始化原生广告组件 为了在Cocos Creator开发的微信小游戏中集成原生广告,首先需要创建并初始化原生广告组件。这一步骤类似于其他类型的广告设置,但具体实现有所不同。 ```javascript // Common.js 文件中的定义部分 export = { nativeAd: null, } ``` 当游戏启动或特定场景触发时,应当实例化`wx.createNativeAd()`来获取原生广告对象,并将其赋值给之前声明的对象属性[^1]: ```javascript if (cc.sys.platform === cc.sys.WECHAT_GAME) { this.nativeAd = wx.createNativeAd({ adUnitId: 'your_native_ad_unit_id', style: { left: 0, top: 0, width: 300 // 设置宽度适应不同设备分辨率 } }); try { await this.nativeAd.load(); console.log('native ad loaded'); const view = this.nativeAd.createView(); // 创建视图容器 // 添加到节点树中显示出来 cc.find('Canvas').addChild(view); // 可选配置项调整样式位置大小等参数 view.style.left = 50; view.style.top = 50; view.style.width = 250; } catch (error) { console.error('Failed to load or display the native ad:', error.message); } } ``` #### 处理生命周期事件 对于任何类型的广告来说,在其整个生命期内处理好各种状态变化都是非常重要的。针对原生广告也不例外,应该监听诸如加载完成、点击以及关闭之类的事件以便做出相应反应[^3]。 ```javascript this.nativeAd.onLoad(() => { console.log('The native advertisement has been successfully loaded.'); }); this.nativeAd.onError(error => { console.warn(`Error occurred while loading native ads:${JSON.stringify(error)}`); }); this.nativeAd.onResize(size => { console.info(`Size of the displayed native ad changed to ${size.width}x${size.height}px`); }); ``` 通过以上方式可以在Cocos Creator构建的游戏项目里顺利集成本地化的微信小游戏平台提供的原生广告服务功能[^2]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

iningwei

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值