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。
最后更新于
这有帮助吗?