Creator

Demo工程克隆地址 :

Creator工程:

git clone http://dnsdk.vimedia.cn:8080/r/CreatorDemo.git

导出Android Studio工程过后,运行CreatorDemo配置

Creator插件

将CreatorDemo项目中的assets/Wb目录拷贝到自己的工程目录下即可使用。

主要有 ADManger , CoreManger, PayManger, ToolManger等。

接口使用

导入头文件并使用接口

import {Wb} from "../../Wb/Scripts/Define";

Wb.ADManager.Instance.openAd("home_mfzs");

具体接入业务如下:

一、基础能力

1、 调用退出(Android必接)

Wb.Tool.applicationExit();

2、获取应用参数

let pname = Wb.Core.getPackageName();//获取包名
let prjid = Wb.Core.getPrjid();//获取项目ID
let imsi = Wb.Core.getImsi();//获取imsi
let imei = Wb.Core.getImei();//获取imei
let lsn = Wb.Core.getLsn();//获取lsn
let appid = Wb.Core.getAppid();//获取appid
let channel = Wb.Core.getChannel();//获取渠道名
let vername = Wb.Core.getVerName();//获取app版本
let result = Wb.Core.getAuditSwitch();//获取审核开关,返回值:0-未审核 1-审核中
let state = Wb.Core.getNetState();//获取网络状态(0-无网络 1-手机网络 2-wifi网络 3-以太网络 4-蓝牙网络)
let result = Wb.Core.getCustomSwitch(inputValue);//获取审核开关,返回值:0-未审核 1-审核中(inputValue:自定义键值)

二、广告能力

1、打开普通广告(插屏/视频/横幅/开屏)

Wb.Ad.openAd(adName: string, callback: Function);

2、打开原生广告

Wb.Ad.openYsAd(adName: string, width: number, height: number, x: number, y: number, callback: Function);

3、查看广告是否就绪

Wb.Ad.isAdReady(adName: string);

4、关闭广告

Wb.Ad.closeAd(adName: string);

5、获取视频限制次数

Wb.Ad.getVideoLimitOpenNum();

6、某关卡是否出现广告

Wb.Ad.isAdBeOpenInLevel(adName: string, level: number);

7、查询某广告是否存在

Wb.Ad.isAdTypeExist(adName: string);

8、获取广告控制参数

Wb.Ad.getAdPositionParam(adName: string, param: string);

三、统计能力

1、自定义统计

Wb.Tj.tJCustomEvent(eventId: string);
Wb.Tj.tJCustomEventLabel(eventId: string, label: string);
Wb.Tj.tJCustomEventHashMap(eventId: string, attributes: string);

2、关卡统计

Wb.Tj.startLevel(level: string);
Wb.Tj.finishLevel(level: string, score: string);
Wb.Tj.failLevel(level: string, score: string);

3、充值统计

Wb.Tj.tJPay(money: string, coin: string, source: number);
Wb.Tj.tJPayAndBuy(money: string, item: string, number: number, price: string, source: number);//充值并购买

4、页面统计

Wb.Tj.onPageStart(sid: string);
Wb.Tj.onPageEnd(sid: string);

四、社交能力

1、登录

Wb.Social.login(type: number, callback: Function);  
  • 参数:

    type:登录类型 1:微信登录,3:FB登录

    callback:回调

2、获取用户信息

Wb.Social.getUserInfo(type: number, callback: Function);  
  • 参数:

type:登录类型 1:微信登录,3:FB登录

callback:回调

3、分享

/**   
* 分享接口link拼接使用参数
* map 字段定义   
* platform   微信 1、QQ 2、FACEBOOK 3、Vivo 7、AliPay 8
* shareTo    使用微信分享时,0/1/2分别代表分享到聊天窗口/朋友圈/收藏   
* url        跳转地址   
* title      文字title   
* text       文字描述   
* imagePath  分享的图片路径,本地路径   
* imageUrl   分享的网络图片地址   
* videoUrl   分享的网络视频的地址   
* shareType  分享类型 0 大图 1 网页 2 小程序 3 文本  4 网络视频   
*     
*/   

var obj = {
  "platform":"1",
  "shareTo":"0",
  "url":"https://unity.com",
  "title":"ShareLink",
  "text":"Hello link!",
  "imagePath":"",
  "imageUrl":"",
  "thumbImage":"",
  "shareType":"1"
};
var link = JSON.stringify(obj);

Wb.Social.share(link: string, callback: Function);
  • 参数:

link:分享拼接的json数据

callback:回调

五、红包上报和提现

具体返回数据可查看【8.红包能力

  • 回调函数参数介绍

    result: 成功true;失败false

    info:返回json字符串,需要自己解析

1、设置域名配置

可以不调用该方法,默认使用游戏域名。

Wb.Cash.SetDomainType(type); 
  • 参数:

    type:0游戏; 1应用

2、获取提现配置

Wb.Cash.GetCashConfig(fun: Function);    
  • 参数:

    fun:回调函数

3、提现

先使用【社交能力】登录微信,获取用户微信信息;然后调用该接口,具体逻辑可参考CreatorDemo相关代码。

Wb.Cash.CashMoney(cType: number, openid: string, accessToken: string, amount: number, withdrawType: number, fun: Function);  
  • 参数:

    cType:提现活动类型根据提现配置填写

    openid:微信openid或者支付宝openid

    accessToken:微信的授权Token或者支付宝token

    amount:提现金额,例如0.3

    withdrawType: 0微信,1支付宝

    fun:回调函数

4、上报余额

Wb.Cash.ReportBalance(redBalance: number, videoNumbs: number, fun: Function);    
  • 参数:

    redBalance:上报的金额单位为分

    videoNumbs:广告剩余视频播放次数

    fun:回调函数

Android对接

1.添加maven仓库地址

    在buildscript中:

    buildscript {
        repositories {
            google()
            jcenter()

            maven { url 'https://maven.aliyun.com/repository/public/' }
            maven { url 'https://maven.aliyun.com/repository/google/' }
            maven { url 'https://maven.aliyun.com/repository/jicenter/' }

            maven { url 'http://developer.huawei.com/repo/'}
            maven { url 'https://dl.bintray.com/umsdk/release' }
        }

        dependencies {
            classpath 'com.huawei.agconnect:agcp:1.1.1.300'
            //classpath 'com.wb.check:plugin:1.0.2'
            classpath 'com.android.tools.build:gradle:3.4.3'
        }
    }


  在allprojects中:

  allprojects {
      repositories {
          //友盟 需放到最前面
          maven { url 'https://repo1.maven.org/maven2/' }
          maven { url "http://dnsdk.vimedia.cn:8081/repository/vigame-public/" }
          maven { url "http://dnsdk.vimedia.cn:8081/repository/vimedia-public/" }

          google()
          jcenter()
          flatDir {
              dirs 'libs'
          }

          maven { url 'https://maven.aliyun.com/repository/public/' }
          maven { url 'https://maven.aliyun.com/repository/google/' }
          maven { url 'https://maven.aliyun.com/repository/jicenter/' }
          //ironsource maven仓库
          maven { url "https://dl.bintray.com/ironsource-mobile/android-adapters/"}
          maven { url "https://dl.bintray.com/ironsource-mobile/android-sdk"}

          maven { url 'http://developer.huawei.com/repo/'}

          maven { url 'https://dl.bintray.com/umsdk/release' }

          maven {
              url 'https://maven.fabric.io/public'
          }

          //头条聚合或者MTG
          maven { url "https://dl.bintray.com/mintegral-official/Andorid_ad_SDK_for_china_support"}
          //MTG
          maven {
              url "https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_china"
          }
      }
  }

2.在 gradle.properties中添加:

android.enableJetifier=true
android.useAndroidX=true

3.引入仓库中的模块

    implementation 'pl.droidsonroids.gif:android-gif-drawable:1.2.6'
    implementation 'androidx.appcompat:appcompat:1.1.0'
    implementation 'androidx.legacy:legacy-support-v4:1.0.0'
    implementation 'androidx.multidex:multidex:2.0.1'
    implementation 'androidx.percentlayout:percentlayout:1.0.0'
    implementation 'com.google.android.material:material:1.2.1'
    implementation 'androidx.constraintlayout:constraintlayout:2.0.1'
    implementation 'androidx.navigation:navigation-fragment:2.3.0'
    implementation 'androidx.navigation:navigation-ui:2.3.0'

    //#Module_Begin
    implementation 'com.vimedia.ad:manager:1.5.8'
    implementation 'com.vimedia.ad:vigame:1.2.3'
//    implementation 'com.vimedia.ad:gdt:1.1.9'
//    implementation 'com.vimedia.ad:headline:1.2.8'
//    implementation 'com.vimedia.ad:kuaishou:1.0.11'
//    implementation 'com.vimedia.ad:sigmob:1.0.6'
//    implementation 'com.vimedia.ad:mobvista:1.0.7'
//    implementation 'com.vimedia.ad:ironsource_JuHe:1.0.2'
    implementation 'com.vimedia.track:adjust:1.0.4'
    implementation 'com.vimedia.track:reyun:1.1.7'
    implementation 'com.vimedia.tj:umeng:1.1.5'
    implementation 'com.vimedia.pay:alipayApp:1.0.2'
    implementation 'com.vimedia.track:headline:1.0.4'
    implementation 'com.vimedia.core:kinetic:1.7.2_210723_1'
    implementation 'com.vimedia.game:manager:1.4.6_210723_1'
    implementation 'com.vimedia.pay:manager:1.1.0'
    implementation 'com.vimedia.social:manager:1.0.6'
    implementation 'com.vimedia.tj:manager:1.0.6'
    implementation 'com.vimedia.track:manager:1.0.8'
    implementation 'com.vimedia.track:persona:1.0.8'
    implementation 'com.vimedia.core:plugin:1.1.1'
    implementation 'com.vimedia.track:umeng:1.1.4'
    implementation 'com.vimedia.pay:wechat:1.0.4'
    implementation 'com.vimedia.track:gdt:1.0.5'
    implementation 'com.vimedia.ext:manager:1.0.6'
    implementation 'com.vimedia.extensions:protocol:1.0.0'
    implementation 'com.vimedia.social:wechat:1.0.9'
    implementation 'com.vimedia.core:common:1.2.5'

4:添加动能的混淆过滤文件

buildTypes {
        release {
            minifyEnabled true
            shrinkResources false
            // 此处添加 'vigame_proguard.pro' 过滤sdk的混淆
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro', 'vigame_proguard.pro'  
            signingConfig signingConfigs.release
            zipAlignEnabled true
        }
    }

如果release版本不开启混淆,可跳过

5.在 build.gradle 中加入Creator桥接模块

   implementation 'com.vimedia.game:creator:1.0.4-2'

6.修改应用的Application类

public class MyApplication extends Application {
    /**
     * onCreate lifecycle.
     */
    @Override
    public void onCreate() {
        super.onCreate();
        DNSDK.applicationOnCreate(this);
    }

    /**
     * onLowMemory lifecycle.
     */
    @Override
    public void onLowMemory() {
        super.onLowMemory();
    }

    /**
     * attachBaseContext lifecycle.
     */
    @Override
    protected void attachBaseContext(final Context base) {
        super.attachBaseContext(base);
        DNSDK.applicationAttachBaseContext(this, base);
    }

}

或者

直接将MyApplication类继承DNApplication

public class MyApplication extends DNApplication {

}

7.修改Manifest文件

添加相关的参数配置,并将VigameStartActivity设置为启动的Activity,application标签的android:name 设置为com.vimedia.core.kinetic.api.DNApplication 或 xxx.xx.x.MyApplication

   <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.dn.tgxm.gg"
    android:installLocation="auto">

    <uses-feature android:glEsVersion="0x00020000" />

    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>

    <application
        android:allowBackup="true"
        android:label="@string/app_name"
        android:name="org.cocos2dx.javascript.MyApplication"
        android:usesCleartextTraffic="true"
        android:icon="@mipmap/ic_launcher">

        <!-- Parameter begin -->
        <meta-data
            android:name="com.vigame.sdk.appid"
            android:value="${DN_APPID}" />
        <meta-data
            android:name="com.vigame.sdk.appkey"
            android:value="${DN_APPKEY}" /> 
            <!-- Parameter end -->
        <meta-data
            android:name="com.vigame.sdk.prjid"
            android:value="${DN_PRJID}" />
        <meta-data
            android:name="com.vigame.sdk.channel"
            android:value="${DN_CHANNEL}" />

        <!-- Tell Cocos2dxActivity the name of our .so -->
        <meta-data android:name="android.app.lib_name"
                   android:value="cocos2djs" />

        <activity
            android:name="com.vimedia.game.VigameStartActivity"
            android:configChanges="orientation|keyboardHidden|screenSize"
            android:label="@string/app_name"
            android:theme="@style/AppWelcome"
            android:screenOrientation="portrait">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <activity
            android:name="org.cocos2dx.javascript.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="" >
        </activity>
    </application>

</manifest>

8.将主Acitivy继承CreatorWbActivity或者将CreatorWbActivity作为主Activity。

import android.app.Activity;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.widget.FrameLayout;
import com.vimedia.ad.common.ADContainer;
import com.vimedia.creatorbridge.CreatorWbActivity;

public class AppActivity extends CreatorWbActivity implements ADContainer {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

    @Override
    public Activity getActivity() {
        return this;
    }

    @Override
    public void addADView(View view, String type) {
        FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(
                FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT);
        params.gravity = Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL;
        this.addContentView(view, params);
    }

}

CreatorWbActivity已经继承Cocos2dxActivity

9.放入配置文件并修改

拷贝VigameConfig.xml到assets目录

通过assets文件夹中的ConfigVigame.xml进行配置,注意必须属性一定要设置,属性说明如下:

名称

解释

是否必须

GameOpenActivity

闪屏后进入的Activity路径名称

ScreenOrientation

屏幕方向

IsSDK

填true,请勿修改该标签

CompanyIndex

公司名称ID,默认填1

SupportAdPositions

支持的广告位名称

WithSplashAD

是否出现闪屏广告(默认出现)

Debug

true或false(Vigamelog 是否输出的标志)

NoSplash

不显示开屏时设置为true,默认不设置

AutoFullScreen

是否把当前activity设置为全屏,默认为true

FixSpecialScreen

是否适配刘海屏,默认为true

SplashTime

闪屏持续时长,整数(单位毫秒)

DelaySplashAD

闪屏持续多长时间后打开开屏广告,默认为0

10.配置测试相关项

1).修改app/build.gradle文件,修改包名、渠道名、umeng参数

建议使用如下示例的包名,以方便广告展示

defaultConfig {
        manifestPlaceholders = [
                Splash_Orientation:"portrait",
                DN_APPID:"13665",
                DN_APPKEY:"hnt35fqd5ykmhkpo7hq7e3ure8be0ljf6eh6hzay3afpr7q7u5",
                DN_CHANNEL:"dy",
                DN_PRJID:"13665133",
                AppsFlyer_DevKey:"X9NxxaMp4neHCFYreDxtd5",
                ADMOB_APP_ID:"ca-app-pub-7851203648968517~3923216450",

                //#track_BEGAIN
                ADJUST_TOKEN:"wltxsy41qygw",
                ADJUST_TESTMODEL:"false",
                ADJUST_TOKEN_SECOND:"mg6erg",
                ReYunAppKey:"471bf341b4a1ad6f46eb48f56a935e8e",
                APPLOG_SCHEME:"rangersapplog.byax6uyt",
                HEADLINE_APPID:"152405",
                GDTAppId:"1111232169",
                GDTAppKey:"eadf902c98e6617a803938457c392b05",
                //#track_END

                //#TJ_BEGAIN
                UMENG_APPKEY:"5e0f2229570df3254b0000a2",
                //#TJ_END

                //#Pay_BEGAIN
                //#Pay_END
        ]
}

2).修改开屏广告的背景

开屏广告默认内置一张白色背景,如需修改改背景文件,请将要替换的背景图放在res/drawable/目录并重命名为bg_splash_vigame.png。

最后更新于

这有帮助吗?