字节跳动小游戏实现游戏跳转功能

本文详述了字节平台小游戏无法直接使用tt.navigateToMiniProgram进行跳转的原因,并介绍了替代方案tt.createMoreGamesButton的使用方法。文章强调了参数image必须为本地地址,提供了网络图片转换本地地址的解决方案,同时提醒开发者注意按钮样式、位置适配及层次关系等问题。

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

首先,接过微信小游戏的开发者都知道,微信小游戏是通过 wx.navigateToMiniProgram来实现跳转的,但是在字节平台,先泼一下冷水,tt.navigateToMiniProgram api是不可用的,不可用!

这不是Bug,是官方定的策略。不要问我为什么,我也不知道!虽然我也很想要这个api!

其次,官方提供其它api tt.createMoreGamesButton来实现游戏跳转,间接实现游戏矩阵功能。字节官方的策略是游戏内创建个按钮,用户点击该按钮后,会弹出一个固定样式的弹窗,弹窗中包含预先配置的小游戏列表。这个弹窗是小游戏底层自动创建,无需开发者开发。
伪代码:

let obj:any = {
      type: 'image',
       image: imgurl , //"images/xxx.png"
       style: { 
           left: Math.round(left), 
           top: Math.round(top), 
           width: Math.round(width), 
           height: Math.round(height), 
           backgroundColor: "#ffffff", 
           borderColor: "#ffffff", 
           borderWidth: 0, 
           borderRadius: 5,
           textColor: "#ffffff",    
           textAlign: "center",    
           fontSize: 16,    
           lineHeight: 40
       },
       appLaunchOptions: [{appId:"", query:"", extraData:{}}],
       onNavigateToMiniGame(res){
           // console.log("跳转其他小游戏", res);
       }
   }
   if(this.button){
       try{
           this.button.offTap(this.onTap);
           this.button.destroy();
       }catch(e){
       }
   }
   var button = this.button = window["tt"].createMoreGamesButton(obj);

效果图
效果图
在这里不讲api tt.createMoreGamesButton的详细用法,具体请戳 这个api地址

主要讲几个需要注意的地方:

  1. 参数 image 只能是本地地址,不能是网络地址,直接传 http这种网络地址是无效的。那想用网络图片怎么办呢?需要借助 tt.downloadFile api先下载下来再给 createMoreGamesButton api使用。
    贴一点伪代码:
window["tt"].downloadFile({
    url:imgurl,
    success:(v)=>{
        if (v.statusCode >= 400){
            self.playNext_557();
        }
        else{
            self.imgCache[imgurl] = v.tempFilePath;
            self.showBtn(v.tempFilePath);
        }               
    },
    fail: (e) => {
        self.playNext_557();
    }
})
  1. 注意按钮的 width、top适配,createMoreGamesButton api使用的是原始尺寸定位的,需要根据 stage.width/ stage.height 和实际屏幕宽高比例做好缩放。

  2. 参数 borderColor、textColor 这些特别注意是字符串"#ffffff",不是十六进制的 0xffffff,本人做的时候不小心没注意被卡了一小时才发现问题。

  3. 注意按钮的层次关系,createMoreGamesButton创建的按钮是在最顶层的,需要做好和游戏弹窗的 显示和隐藏的逻辑关系。

  4. 不是所有版本都支持这个api,只有 1.23.0版本以上才支持,需要用 SDKUpdateVersion判断(怎么读取SDKUpdateVersion请查看官方api)

  5. 遇到坑“api用法正确,但仍然偶现创建的按钮不显示的情况”,这是官方已知Bug,升级app小游戏库(无需更新app,未验证)

  6. 不要忘记,和微信一样,想跳转的游戏 需要在 game.json文件中配置 appid,

"ttNavigateToMiniGameAppIdList": [
		"tt xxxxxxxx ",
		"tt xxxxxxxx "
		// 至少4个,最多10个
	]

大功告成!开发技能又提升了!~~

<think>嗯,用户想找实现抖音小圆码跳转到微信的免费程序或方案,特别是抖音小程序跳转微信的免费开源代码和实现方式。首先,我需要理解用户的需求。他们可能是在抖音上有内容或服务,想通过小圆码让用户跳转到微信,可能是为了导流、营销或者提供服务。不过,抖音和微信属于不同的平台,可能存在技术上的限制或者平台政策的问题。 根据系统提供的引用内容,特别是引用[1]、[3]、[4],现有的方案主要是通过Url Scheme或者SDK来实现跳转。比如,引用[1]提到使用微信小程序的Url Scheme来跳转,引用[3]提到了开源的抖音跳转微信的源码搭建教程,而引用[4]则介绍了使用Unity制作抖音小游戏,其中涉及集成SDK。但用户想要的是免费开源的方案,所以可能需要寻找现有的开源项目或者社区提供的解决方案。 首先,我需要确认抖音平台是否允许这种跳转。根据微信和抖音的生态政策,直接跳转可能会有风险,比如被平台限制或者封禁。因此,用户需要注意合规性,避免违反平台规则。 然后,技术实现方面,引用[3]提到的开源项目可能是一个好的起点。用户需要搭建一个服务端后台,生成包含微信小程序Scheme的二维码,然后在抖音中引导用户扫描。此外,引用[1]提到成熟的Url Scheme方案,可能需要注册微信小程序获取合法的Scheme,确保跳转的有效性。 另外,用户可能需要考虑如何生成小圆码(二维码),并在抖音中展示。这里可能需要用到二维码生成库,比如qrcode.js或者Python的qrcode库,结合后端服务动态生成。同时,抖音小程序可能需要集成相关API,调用扫码功能或者直接跳转链接。 还需要注意,抖音和微信的跳转可能涉及到WebView的限制,特别是在APP内打开外部链接可能会被拦截。因此,可能需要用户手动操作,比如复制链接到浏览器打开,或者通过中间页引导用户完成跳转。 总结一下,可能的步骤包括:1. 注册微信小程序获取Url Scheme;2. 开发或使用开源的后台服务生成二维码;3. 在抖音中部署该二维码或跳转链接;4. 处理可能的平台限制和用户引导。 另外,用户提到免费开源代码,引用[3]中的项目地址可能是一个资源,需要检查其可用性和维护状态。同时,社区论坛如GitHub、码云可能有相关项目,需要搜索和评估。 最后,需要提醒用户注意法律风险和平台政策,确保跳转功能不被滥用,避免账号被封禁。</think>### 实现抖音跳转微信的方案分析 根据当前技术生态和开源资源,抖音跳转微信的功能实现主要依赖**微信小程序的URL Scheme**和**中间页跳转技术**,以下是具体方案: --- #### 一、免费开源方案的核心思路 1. **微信小程序URL Scheme生成** - 注册微信小程序并获取合法的`URL Scheme`(需符合微信开放平台规则),格式示例:`weixin://dl/business/?t=xxx`[^1]。 - 通过微信官方API生成动态Scheme,用于跳转到指定页面。 2. **抖音端跳转实现** - **方案1:通过H5中间页** 在抖音短视频或主页中放置二维码/链接,用户点击后跳转到H5页面,该页面自动触发Scheme跳转或引导用户手动操作。 ```html <!-- 示例:H5页面自动跳转 --> <script> window.location.href = 'weixin://dl/business/?t=xxx'; </script> ``` - **方案2:抖音小程序集成SDK** 若需通过抖音小程序实现跳转,需集成字节跳动SDK,调用`navigateToMiniProgram`接口(但微信和抖音生态隔离,此方法可能受限)[^4]。 3. **二维码生成工具** - 使用开源库(如Python的`qrcode`)生成包含Scheme的二维码,部署到服务器: ```python import qrcode qr = qrcode.make('weixin://dl/business/?t=xxx') qr.save("wechat_jump.png") ``` --- #### 二、开源项目推荐 1. **抖音跳转微信源码(GitCode)** - 项目地址:[抖音跳转微信源码搭建教程](https://gitcode.com/Open-source-documentation-tutorial/aa5b5) - 功能:提供服务端后台搭建教程,支持动态生成跳转链接和二维码,适配抖音星图小风车场景[^3]。 2. **ShopXO电商系统(扩展支持)** - 支持多端跳转逻辑,可参考其小程序间跳转模块的代码实现(需自行适配抖音场景)[^2]。 --- #### 三、注意事项 1. **平台限制风险** - 微信和抖音存在生态竞争,频繁跳转可能导致链接被封禁,建议结合短信/客服引导等备用方案。 2. **合规性要求** - 跳转需符合《微信小程序运营规范》和《抖音社区准则》,避免诱导分享或强制跳转。 ---
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

星星之Coder

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

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

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

打赏作者

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

抵扣说明:

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

余额充值