更新记录

1.0(2026-02-06)

新增功能

  • 支持短剧初始化和加载
  • 支持短剧方法调用
  • 支持场景切换功能
  • 支持短视频功能
  • 提供组件和JS SDK两种使用方式
  • 支持广告功能 优化改进
  • 模块化设计,使用uni_modules规范
  • 跨平台兼容,支持多端运行
  • 简洁易用的API设计
  • 完善的错误处理机制 修复问题

    v1.0.1

    功能优化 新增功能

  • 增加短剧进度保存功能
  • 增加用户数据同步功能
  • 增加短剧设置选项 优化改进
  • 优化短剧加载速度
  • 优化广告展示逻辑
  • 优化原生插件性能
  • 改进错误提示信息

平台兼容性

三栏短剧集插件使用说明

插件介绍

三栏短剧集插件是一个基于LayaAir引擎的游戏插件,支持在uni-app项目中集成和使用三栏短剧集游戏。该插件提供了完整的游戏加载、初始化和交互功能,支持Android和iOS平台,并且在Web环境中也能正常运行。

功能特点

  • 跨平台兼容:支持Android、iOS和Web平台
  • 模块化设计:使用uni_modules规范,实现了插件的模块化管理
  • 简单易用:提供了简洁的API,方便开发者集成和使用
  • 完整功能:支持游戏初始化、加载、方法调用、场景切换和摇骰子等功能

安装方法

方法一:通过uni_modules安装

  1. uni_modules/sanlan-drama目录复制到您的uni-app项目的uni_modules目录中
  2. 项目会自动识别并加载插件

方法二:通过插件市场安装

  1. 在HBuilderX中打开您的uni-app项目
  2. 点击"插件市场",搜索"三栏短剧集"
  3. 点击"安装到项目",选择您的项目
  4. 等待安装完成

使用方法

方法一:使用组件方式

在页面中引入sanlan-drama组件:

<template>
  <div class="container">
    <sanlan-drama ref="sanlanDrama" :game-url="gameUrl" :auto-load="true"></sanlan-drama>
    <div class="control-buttons">
      <button class="btn" @click="handleSwitch">切换</button>
      <button class="btn" @click="handleShakeDice">短剧</button>
    </div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      gameUrl: '/static/js/index.js'
    }
  },
  methods: {
    handleSwitch() {
      this.$refs.sanlanDrama.switchScene()
    },
    handleShakeDice() {
      this.$refs.sanlanDrama.shakeDice()
    }
  }
}
</script>

<style scoped>
.container {
  width: 100%;
  height: 100vh;
  display: flex;
  flex-direction: column;
}

.control-buttons {
  position: absolute;
  bottom: 20px;
  left: 0;
  right: 0;
  display: flex;
  justify-content: space-around;
  padding: 0 20px;
  z-index: 100;
}

.btn {
  padding: 10px 20px;
  background-color: #2a43e3;
  color: white;
  border: none;
  border-radius: 5px;
  font-size: 16px;
  cursor: pointer;
}
</style>

方法二:使用JS SDK方式

在页面中引入并使用sanlan-drama SDK:

<template>
  <div class="container">
    <div class="laya-container" ref="layaContainer"></div>
    <div class="control-buttons">
      <button class="btn" @click="handleSwitch">切换</button>
      <button class="btn" @click="handleShakeDice">短剧</button>
    </div>
  </div>
</template>

<script>
import sanLanDrama from '@/uni_modules/sanlan-drama/js_sdk/sanlan-drama.js'

export default {
  mounted() {
    this.initPlugin()
  },
  methods: {
    async initPlugin() {
      try {
        // 初始化插件
        await sanLanDrama.init()
        console.log('插件初始化成功')

        // 加载游戏
        await sanLanDrama.loadGame('/static/js/index.js')
        console.log('游戏加载成功')
      } catch (error) {
        console.error('插件初始化失败:', error)
      }
    },
    async handleSwitch() {
      try {
        await sanLanDrama.switchScene()
        console.log('场景切换成功')
      } catch (error) {
        console.error('场景切换失败:', error)
      }
    },
    async handleShakeDice() {
      try {
        await sanLanDrama.shakeDice()
        console.log('短剧成功')
      } catch (error) {
        console.error('短剧失败:', error)
      }
    }
  }
}
</script>

API文档

组件API

属性

属性名 类型 默认值 说明
gameUrl String '/static/js/index.js' 游戏资源路径
autoLoad Boolean true 是否自动加载游戏

方法

方法名 参数 返回值 说明
initLayaAir() 初始化LayaAir引擎和游戏资源
callGameMethod(method, params) method: String 方法名
params: String 参数
Promise 调用游戏中的方法,传递参数
switchScene() 触发游戏中的"切换"事件
shakeDice() 触发游戏中的"短剧"事件
callNative(method, params) method: String 方法名
params: Object 参数
Promise 与原生插件通信

事件

事件名 说明
initialized LayaAir引擎初始化完成时触发
error 加载失败时触发
switch 切换场景时触发
shake-dice 短剧时触发

JS SDK API

方法

方法名 参数 返回值 说明
init() Promise 初始化插件
loadGame(url) url: String 游戏资源路径 Promise 加载游戏
callGameMethod(method, params) method: String 方法名
params: String 参数
Promise 调用游戏中的方法,传递参数
switchScene() Promise 触发游戏中的"切换"事件
shakeDice() Promise 触发游戏中的"短剧"事件

原生插件API

Android API

方法名 参数 返回值 说明
init(Context context) context: Context 上下文 初始化插件
loadGame(String url, UniJSCallback callback) url: String 游戏资源路径
callback: UniJSCallback 回调函数
加载游戏
callGameMethod(String method, String params, UniJSCallback callback) method: String 方法名
params: String 参数
callback: UniJSCallback 回调函数
调用游戏中的方法,传递参数
switchScene(UniJSCallback callback) callback: UniJSCallback 回调函数 触发游戏中的"切换"事件
shakeDice(UniJSCallback callback) callback: UniJSCallback 回调函数 触发游戏中的"短剧"事件

iOS API

方法名 参数 返回值 说明
init:(NSDictionary *)options callback:(UniJSCallback)callback options: NSDictionary 选项
callback: UniJSCallback 回调函数
初始化插件
loadGame:(NSDictionary *)options callback:(UniJSCallback)callback options: NSDictionary 选项,包含url字段
callback: UniJSCallback 回调函数
加载游戏
callGameMethod:(NSDictionary *)options callback:(UniJSCallback)callback options: NSDictionary 选项,包含method和params字段
callback: UniJSCallback 回调函数
调用游戏中的方法,传递参数
switchScene:(NSDictionary *)options callback:(UniJSCallback)callback options: NSDictionary 选项
callback: UniJSCallback 回调函数
触发游戏中的"切换"事件
shakeDice:(NSDictionary *)options callback:(UniJSCallback)callback options: NSDictionary 选项
callback: UniJSCallback 回调函数
触发游戏中的"短剧"事件

注意事项

  1. 资源路径:确保游戏资源路径正确,特别是在不同平台上的路径差异
  2. 权限配置:在Android平台上,需要确保应用具有网络访问权限
  3. 性能优化:游戏资源较大时,建议使用异步加载,避免阻塞UI线程
  4. 兼容性:插件支持uni-app 2.9.8及以上版本
  5. 调试建议:在开发过程中,可以开启控制台日志,方便调试和排查问题

常见问题

1. 游戏加载失败

问题:插件初始化成功,但游戏加载失败

解决方案

  • 检查游戏资源路径是否正确
  • 确保网络连接正常
  • 检查游戏资源是否完整

2. 原生方法调用失败

问题:在App环境中,原生方法调用失败

解决方案

  • 检查插件是否正确安装
  • 确保应用具有所需权限
  • 检查原生插件代码是否正确编译

3. Web环境中功能不可用

问题:在Web环境中,某些功能不可用

解决方案

  • Web环境中使用的是模拟实现,部分功能可能与原生环境有所差异
  • 建议在实际设备上测试完整功能

版本说明

v1.0.0

  • 初始版本
  • 支持游戏初始化、加载、方法调用、场景切换和短剧等功能
  • 支持Android、iOS和Web平台

联系方式

如果您在使用过程中遇到问题,或者有任何建议和意见,欢迎联系我们:

  • 邮箱:
  • 微信:
  • GitHub:

许可证

本插件采用MIT许可证,详见LICENSE文件。

隐私、权限声明

1. 本插件需要申请的系统权限列表:

根据插件的功能和实现,以下是需要申请的系统权限: ## Android平台 权限名称 权限描述 必要性 权限等级 INTERNET 允许应用访问网络 必要 普通权限 ACCESS_NETWORK_STATE 允许应用获取网络状态 必要 普通权限 READ_EXTERNAL_STORAGE 允许应用读取外部存储 可选 危险权限 WRITE_EXTERNAL_STORAGE 允许应用写入外部存储 可选 危险权限 ## iOS平台 权限名称 权限描述 必要性 权限等级 NSNetworkUsageDescription 应用使用网络的描述 必要 普通权限 NSPhotoLibraryUsageDescription 应用访问相册的描述 可选 隐私权限 NSPhotoLibraryAddUsageDescription 应用向相册添加内容的描述

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

### 1. 游戏功能 - 用户认证 :用于识别用户身份,确保用户数据的安全存储和读取 - 游戏进度 :用于保存用户的游戏进度,确保用户在不同设备上可以继续游戏 - 游戏逻辑 :用于处理游戏内的各种逻辑,如关卡解锁、成就达成等 ### 2. 数据分析 - 用户行为分析 :分析用户的游戏行为,了解用户偏好,优化游戏体验 - 游戏性能分析 :分析游戏在不同设备上的运行情况,优化游戏性能 - 市场分析 :分析游戏的市场表现,为游戏的后续开发和运营提供数据支持 ### 3. 广告与变现 - 广告定向 :根据用户数据,展示更符合用户兴趣的广告 - 广告效果分析 :分析广告的展示和点击情况,优化广告策略 - 支付处理 :处理游戏内的购买请求,确保支付安全和准确 ### 4. 安全与合规 - 反作弊 :检测和防止游戏作弊行为,维护游戏的公平性 - 数据安全 :保护用户数据的安全,防止数据泄露和滥用 - 合规性 :确保数据采集和使用符合相关法律法规的要求

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

广告展示频率根据广告类型和游戏场景不同而有所差异,具体如下: ### 1. 横幅广告 - 展示频率 :持续展示,每30-60秒刷新一次 - 关闭方式 :部分横幅广告可手动关闭,部分需要等待自动消失 ### 2. 插屏广告 - 展示频率 :每1-3个关卡展示一次,或每5-10分钟展示一次 - 关闭方式 :手动点击关闭按钮,或等待广告播放完成 ### 3. 激励视频广告 - 展示频率 :用户主动触发,无固定频率限制 - 关闭方式 :等待视频播放完成,或在视频播放一定时间后可关闭 ### 4. 开屏广告 - 展示频率 :应用每次启动时展示一次 - 关闭方式 :等待广告播放完成,或在广告播放3-5秒后可关闭 ### 5. 原生广告 - 展示频率 :根据游戏内容和用户行为动态调整,每10-15分钟展示一次 - 关闭方式 :部分原生广告可手动关闭,部分与游戏内容融合,无需关闭

暂无用户评论。