# 客户端API接口

客户端加载load模块,引入客户端通信js并执行页面与客户端通信脚本(必须引入执行) 如未加载此js,页面在客户端侧无法运行。 由于客户端api的特殊性,在浏览器下是无法访问客户端的环境的。需要在客户端环境才可以体验

<script src="https://lol.qq.com/client/lcu/script-rclient-window-messenger.js"></script>
<script>
window.parent.postMessage({
   type: 'RClientWindowMessenger',
   messageType: 'rcp-fe-lol-home-loaded'
 },'*')
</script>

# 商城购买

在页面中点击购买按钮,通过客户端的api事件,直接在打开客户端的商城模块,并定位到某款皮肤或者英雄、礼包

使用示例:

<a href="javascript:;" id="btn"  data-store-id="16015" data-store-type="CHAMPION_SKIN" data-store-page="skins">
  <span>打开商城英雄</span>
</a>
document.getElementById('btn').onclick = function () {
    var inventoryType = $(this).attr('data-item-type');
    var itemId = $(this).attr('data-item-id');
    var pageId = $(this).attr('data-page-id');
    RClientWindowMessenger.sendMessage({
      messageType: 'rcp-fe-lol-home-open-store',
      data: {
          inventoryType: inventoryType,
          itemId: itemId,
          page: pageId
      }
  });
}

# 配置说明

ID 类型 模块
英雄id CHAMPION 英雄(champions)
英雄道具包 (bundles_champions)
皮肤id CHAMPION_SKIN 皮肤(skins)
炫彩皮肤(chromas)
皮肤道具包(bundles_skins)
棋盘皮肤(tft_map_skins)
礼包id BUNDLES
BUNDLES
战利品(hextech)
表情(emotes)
守卫(ward_skins)
图标(icons)
加成道具( boosts)
符文页(runes)
道具包 (bundles_accessories)
  • 打开游戏商城的指定皮肤 则对应设置:data-item-type="CHAMPION_SKIN"data-item-id="16015"data-page-id="skins"
<a href="javascript:;" id="btn" data-item-type="CHAMPION_SKIN" data-item-id="16015" data-page-id="skins"></a>
  • 打开游戏商城的指定英雄 则对应设置:data-item-type="CHAMPION"data-item-id="16"data-page-id="champions"
<a href="javascript:;" id="btn" data-item-type="CHAMPION_SKIN" data-item-id="16015" data-page-id="skins"></a>
  • 打开游戏商城的指定礼包,礼包时可不填写pageid, 则对应设置:data-item-type="BUNDLES"data-item-id="99900936"data-page-id=""
<a href="javascript:;" id="btn" data-item-type="BUNDLES" data-item-id="16015" data-page-id=""></a>

# 当前购买

在页面中如需要在当前页面中直接购买单皮肤或单英雄的,可通过客户端的api事件直接在当前页面中直接完成购买 注:仅支持单皮肤和单英雄的购买

<a href="javascript:;" id="popSkin" >
  <span>当前购买皮肤或英雄</span>
</a>
document.getElementById('popSkin').onclick = function () {
    RClientWindowMessenger.sendMessage({
        messageType: 'rcp-fe-lol-home-open-paw',
        data: {
            inventoryType: 'CHAMPION_SKIN',//CHAMPION,CHAMPION_SKIN
            itemId: 22011 // 英雄id或皮肤id
        }
    });
};

# 英雄详情

在页面中如需查看某个英雄的详情或者皮肤,技能等,可通过客户端的api事件直接在打开客户端英雄详情介绍

<a href="javascript:;" id="openChampion">
  <span>打开英雄详情</span>
</a>
document.getElementById('openChampion').onclick = function () {
    RClientWindowMessenger.sendMessage({
        messageType: 'rcp-fe-lol-home-open-champion-details',
        data: {
            section:"overview",// "overview"(总览), "abilities"(技能), "skins"(皮肤)
            championId: 22 //英雄id
        }
    });
};

# 客户端弹出层

在页面中如需在客户端打开一个全屏弹出层可通过客户端的api事件,直接在打开客户端弹出层

使用示例:

<a href="javascript:;" id="openModal">
  <span>打开客户端弹出层</span>
</a>
 document.getElementById('openModal').onclick = function () {
    RClientWindowMessenger.sendMessage({
        messageType: 'rcp-fe-lol-home-open-full-page-modal',
        data: {
            url: url //打开的地址路径
        }
    });
};

# 客户端视频播放

在页面中点击视频播放,通过客户端的api事件,直接在打开客户端弹出层并且直接播放视频

使用示例:

<a href="javascript:;" id="openVideo">
  <span>打开视频播放</span>
</a>
 document.getElementById('openVideo').onclick = function () {
    RClientWindowMessenger.sendMessage({
        messageType: 'rcp-fe-lol-home-open-full-page-modal',
        data: {
            url: 'https://lol.qq.com/client/lcu/page/video.html?vid=z3031bawfwa' // vid 为腾讯视频vid
        }
    });
};