# cocos-封装接入指南

---

本文档是对 cocos 引擎游戏接入 4399 SDK 的说明

<span style="color:red">**注意：文档及示例针对 Cocos Creator 3.5.2，非此版本游戏引擎可能有兼容问题**</span>

> Cocos Creator 2.4.2 的文档及示例可参考 [cocos-封装接入指南](http://support.4399doc.com/web/build/support_platform/index.html#/operate/doc?version=3.12.2.503&md=ea_cocos_guide)


[下载封装包](https://sdkftp.4399doc.com/external/operate/3.20.0/operate-cocos-3.20.0+726.zip) 并解压得到如下结构
```
.
└── assets
    └── Script
        ├── cn
        └── EaCocosDemo.ts
```

简要说明`assets/Script`下的文件
- `assets/Script/cn/**`：java 接口的 *TypeScript* (简称ts) 映射
- `assets/Script/EaCocosDemo.ts`：ts 映射接口调用示例

## 引入 SDK

### 导入文件
-  **在游戏主模块的`build.gradle`中引入在线依赖**  

```gradle
repositories {
    maven {
        url 'https://mvn.4399doc.com/repository/maven-snapshots/'
    }
    maven {
        url 'https://mvn.4399doc.com/repository/maven-releases/'
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar'])
    
    // 运营 SDK：建议使用最新版本，可通过浏览仓库地址或向运营咨询版本
    implementation "cn.m4399.sdk:operate:3.20.0"
    // 运营 SDK：cocos 封装
    implementation 'cn.m4399.sdk:operate-cocos:2.0.0'
    
    // volley 和 support 是 SDK 使用的外部依赖，若接入方已有，可忽略
    implementation 'com.android.volley:volley:1.2.1'
    //noinspection GradleCompatible
    implementation "com.android.support:support-v4:28.0.0"
}
```

- **导入`Script`目录下脚本到工程**

### 配置渠道标识
在游戏`AndroidManifest.xml`中

```xml
<manifest>
    <application>
        <meta-data
            android:name="FTNN_CHANNEL_ID"
            android:value="4399" />
        ...
    </application>
    ...
</manifest>
```

## 接口调用
参考`EaCocosDemo.ts`文件，注意要将**示例参数替换成游戏实际参数**  
接口更具体说明参考 java  接入指南

## FAQ

### 游戏黑屏
游戏页面切换时，Android Dialog正常显示，游戏页面黑屏，如何处理？
<font color=red>**解决方案:CocosActivity中添加下面代码即可解决**</span>

```java
@Override
protected void onRestart() {
    super.onRestart();
    Cocos2dxHelper.onResume();
    mGLSurfaceView.onResume();
}


@Override
protected void onStop() {
    super.onStop();
    Cocos2dxHelper.onPause();
    mGLSurfaceView.onPause();
}
```
