Skip to content

Cocos2dx Lua接入

请先从ShareTrace控制台获取AppKey

本指引以cocos2dx 4.0接入流程为例,其他版本类似。构建工具为CMake

一、安装

附: 完成接入之后的项目Demo可以点击查看

1.1 下载插件

前往下载最新版的Cocos2dx Lua SDK。前往下载

1.2 Android工程集成

(注:请先根据cocos原生开发环境文档配置好开发环境)

  1. 找到主项目app目录下的build.gradle,添加Sharetrace插件, 如:

    gradle
    dependencies {
        // 其他... 
        implementation 'com.sharetrace:sharetrace-android-sdk:2.1.3'
    }
  2. 找到插件中的Android文件夹,将src里面到文件,导入到工程(目标路径:/app/src)

  3. 修改AppActivity 继承于 SharetraceActivity, 即:

    Java
    import com.sharetrace.cocos.SharetraceActivity;
    
    public class AppActivity extends SharetraceActivity {
        ...
    }

    注: 你也可以自行参照SharetraceActivity的结构,直接修改AppActivity, 这里不再赘述。

  4. 配置APP_KEY

    在 AndroidManifest.xml 文件中的 application 标签内设置 AppKey

    xml
        <meta-data
            android:name="com.sharetrace.APP_KEY"
            android:value="SHARETRACE_APPKEY"/>

    请将 SHARETRACE_APPKEY 替换成 sharetrace 为应用分配的 appkey

  5. 一键调起配置(如不需要可以跳过此步骤)

    • 在 AndroidManifest.xml 文件中的 application 标签内设置
      • 修改为android:launchMode="singleTask"
      • 设置android:scheme

    最终的配置如下

    xml
    <application
            ....
            
            <activity
                android:name="org.cocos2dx.cpp.AppActivity"
                android:screenOrientation="portrait"
                android:configChanges="orientation|keyboardHidden|screenSize|screenLayout"
                android:label="@string/app_name"
                android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
                android:launchMode="singleTask"
                android:taskAffinity="" >
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
    
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
    
                <intent-filter>
                    <action android:name="android.intent.action.VIEW"/>
    
                    <category android:name="android.intent.category.DEFAULT"/>
                    <category android:name="android.intent.category.BROWSABLE"/>
    
                    <data android:scheme="[Sharetrace分配的Scheme]"/>
                </intent-filter>
            </activity>
    
            <meta-data  
                android:name="com.sharetrace.APP_KEY"
                android:value="SHARETRACE_APPKEY"/>
        </application>

    其中,可以从ShareTrace控制台获取[Sharetrace分配的Scheme]

1.3 iOS工程集成

  1. 参考官方文档,生成工程iOS工程。生成之后使用Xcode打开。(项目路径:/ios-build/

  2. 找到插件中的iOS/SharetraceCocos, 整个文件夹复制到/frameworks/runtime-src/proj.ios_mac/ios中,然后在XCode中找到对应的位置,右键选择Add Files to xxxx,选择刚刚复制的目标路径。

  3. 配置APP_KEY

    在Info.plist文件中配置appKey

    xml
    <key>com.sharetrace.APP_KEY</key>
    <string>SHARETRACE_APPKEY</string>

    请将 SHARETRACE_APPKEY 替换成 sharetrace 为应用分配的 appkey

  4. 一键调起配置(如不需要可以跳过此步骤)

    先参考原生iOS接入指引中的一键调起配置,配置好Associated Domains等配置,再进行以下的操作。

    配置AppController.mm

    objc
        #import "AppController.h"
        #import "cocos2d.h"
        #import "AppDelegate.h"
        #import "RootViewController.h"
        #import "SharetraceBridge.h"
    
        @implementation AppController
    
        @synthesize window;
    
        #pragma mark -
        #pragma mark Application lifecycle
    
        // cocos2d application instance
        static AppDelegate s_sharedApplication;
    
        - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
            [SharetraceBridge startInit];
            cocos2d::Application *app = cocos2d::Application::getInstance();
            ....
    
            return YES;
        }
    
        -(BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray * _Nullable))restorationHandler {
            if ([SharetraceBridge handleUniversalLink:userActivity]) {
                return YES;
            }
            
            return YES;
        }
    
        -(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
            
            if ([SharetraceBridge handleSchemeLinkURL:url]) {
                return YES;
            }
    
            return YES;
            
        }
    
        - (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(nonnull NSDictionary *)options {
            if ([SharetraceBridge handleSchemeLinkURL:url]) {
                return YES;
            }
    
            return YES;
        }
    
        @end

二、使用方式

2.1 导入Sharetrace头文件

需要使用到Sharetrace lua 插件的地方,需要导入相关头文件

lua
local sharetrace = require("app.models.sharetrace")

注: 上述头文件路径需与Classes里面的路径一致,根据具体情况配置即可。

2.2 获取安装携带的参数

lua
    local function onInstallResult(result)
        print("onInstallResult:"..result)
    end

    sharetrace:getInstallTrace(10, onInstallResult)

2.3 获取一键调起参数

lua
    local function onWakeupResult(result)
        print("onWakeupResult:"..result)
    end

    sharetrace:registerWakeUpTrace(onWakeupResult)

三、配置安装方式

1、配置安装方式:SDK 集成完成后,进入sharetrace控制台 — 应用详情 — iOS配置 — 点击“去集成” — 点击“我已集成,下一步” — 选择任意一种安装方式,填写信息 — 点击“下一步”,完成安装方式配置

2、安装方式说明

  • (1)自定义链接地址:即是你APP的安装包下载链接
  • (2)App Store:填写你APP在AppStore的地址
  • (3)平台托管:将你APP的安装上传到ShareTrace平台,你的用户下载时,直接从ShareTrace服务器下载
  • (4)暂不配置:只用于本地测试,适合在没有配置web SDK的情况下使用