应用指南
下载最新版本
运行示例项目
在Android Studio中运行PLUG示例项目的方法如下。
在Android Studio中打开sample/navercafesdk-sample-android-studio文件夹中的项目。
1. 设置应用程序Manifest
在AndroidManifest.xml文件中,按照如下方式添加访问权限和活动。
1.1 PLUG SDK访问权限
在PLUG SDK中添加必要的访问权限。
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
1.2 视频录制访问权限
添加使用视频录制功能所需的必要访问权限。
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <!-- 必选项 -->
<uses-permission android:name="android.permission.RECORD_AUDIO"/> <!-- 可选项 -->
2. 初始化
根据PLUG SDK支持的语言,按照如下方法将PLUG SDK初始化。
2.1 PLUG SDK初始化(仅支持韩语 - NAVER Cafe)
对仅支持韩语的PLUG SDK进行初始化时,设置如下初始化选项并调用init()方法。
ClientId:在“使用NAVER ID登录开发人员中心”注册应用程序后获得的客户端IDClientId。
ClientSecret:在“使用NAVER ID登录开发人员中心”注册应用程序后获得的客户端Secret。
cafeId:在NAVER Cafe创建Cafe后获得的Cafe ID。init()是对PLUG SDK进行初始化的方法。
fpublic class MainActivity extends Activity {
@Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
/**
* 用在“使用NAVER ID登录开发人员中心”获得的信息,将PLUG初始化
* 在调用Glink类的其他方法之前,必须先进行初始化。
* 开发人员中心地址:https://nid.naver.com/devcenter/main.nhn
*/
final int cafeId = 28290504;
final String clientId = "197CymaStozo7X5r2qR5";
final String clientSecret = "evCgKH1kJL";
Glink.init(this, clientId, clientSecret, cafeId);
...
}
2.2 PLUG SDK初始化(仅支持外语 - Moot)
对仅支持外语的PLUG SDK进行初始化时,设置如下初始化选项并调用initGlobal()方法。
consumerKey: 创建社区后获得的Consumer Key。
consumerSecretKey: 创建社区后获得的Consumer Secret Key。
cummunityNo: 创建社区后获得的Cummunity No。
loungeNo: 创建lounge后获得的Lounge No。
initGlobal()是对支持外语的PLUG SDK进行初始化的方法。
public class MainActivity extends Activity {
@Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
/**
* 通过合作邮件申请合作,即可获得社区ID和Consumer Key
* 在调用Glink类的其他方法之前,必须先进行初始化。
* 合作邮箱地址:dl_plugsupport@navercorp.com
*/
final String consumerKey = "PLUGTESTKEY";
final String consumerSecretKey = "PLUGTESTSECRET";
final int cummunityNo = 1;
final int loungeNo = 58;
// 为支持国外社区而进行PLUG初始化。仅使用韩国国内NAVERCafe时,无需调用initGlobal()
Glink.initGlobal(this, "PLUGTESTKEY", "PLUGTESTSECRET", cummunityNo, loungeNo)
;
}
2.3 支持国外社区和韩国国内NAVER Cafe的PLUG初始化
对于同时支持国外社区和韩国国内NAVER Cafe的PLUG,需要使用initGlobal()和init()方法进行初始化。
下面是实现PLUG初始化的示例。
public class MainActivity extends Activity {
@Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
/**
* 用在“使用NAVER ID登录开发人员中心”获得的信息,将PLUG初始化
* 在调用Glink类的其他方法之前,必须先进行初始化。
* 开发人员中心地址:https://nid.naver.com/devcenter/main.nhn
*/
final int cafeId = 28290504;
final String clientId = "197CymaStozo7X5r2qR5";
final String clientSecret = "evCgKH1kJL";
// 为支持韩国国内NAVER Cafe而进行PLUG初始化。
Glink.init(this, clientId, clientSecret, cafeId);
/**
* 通过合作邮件申请合作,即可获得社区ID和Consumer Key
* 在调用Glink类的其他方法之前,必须先进行初始化。
* 合作邮箱地址:dl_plugsupport@navercorp.com
*/
final int globalCafeId = 1013329;
final String neoIdConsumerKey = "IHCd_HmSiMcXOMC37xZ8";
final String defaultChannel = "";
// 为支持国外社区而进行PLUG初始化。仅使用韩国国内NAVERCafe时,无需调用initGlobal()
Glink.initGlobal(this, neoIdConsumerKey, globalCafeId);
}
3. 启动PLUG SDK
完成初始化后,运行PLUG SDK。
3.1 startHome()方法
startHome()是以主页标签被选择的状态启动PLUG SDK的方法。
/**
* 以主页标签启动
*/
Glink.startHome(activity)
PLUG启动与退出
以特定标签被选择的状态启动或退出NAVER PLUG。
startHome()方法
以主页标签被选择的状态启动PLUG。
public static void startHome(Activity activity);
下面是实现startHome()方法的示例。
/**
* 以主页标签启动
*/
Glink.startHome(activity)
stop()方法
立即关闭PLUG界面并退出PLUG。
public static void stop(final Activity activity);
下面是stop()方法的示例。
/**
* 退出PLUG
*/
Glink.stop(activity)
isShowGlink()方法
确认PLUG界面是否打开。
public static boolean isShowGlink(Activity activity);
下面是isShowGlink()方法的示例。
/**
* 确认PLUG界面是否打开
*/
Glink.isShowGlink(activity)
默认通道设置
PLUG中不同语言社区的默认通道均适用设备所设语言。如果要将默认通道设置为特定语言,使用setChannelCode()方法。
public static void setChannelCode(String channelCode);
下面是将默认通道设置为特定语言的示例。
Glink.setChannelCode("en");
横屏模式及竖屏模式
PLUG同时支持横屏模式和竖屏模式。
Android环境下,无需另外设置,系统将根据界面的横竖状态自动应用横屏或竖屏模式。
透明度调节
如果利用PLUG界面左上方的透明度调节滑块调节透明度,则可以同时使用游戏和Cafe服务。
利用setTransparentable()方法设置是否使用透明度调节滑块。
public static void setTransparentable(Activity activity, boolean isTransparentable);
将isTransparentable参数值设置为true时,可以使用透明度调节滑块(缺省值:true).
下面是使用透明度调节滑块的示例。
/**
* 设置是否使用透明度调节滑块
*/
Glink.setTransparentable(activity, true)
微件
微件是点击PLUG收起按钮时自动显示在界面中的构成要素。利用微件可在游戏内的任何环境下使用PLUG。
微件显示
点击PLUG的收起按钮时,利用ShowWidgetWhenUnloadSdk()方法设置是否显示微件。
public static void showWidgetWhenUnloadSdk(Activity activity, boolean show);
如果将show参数值设置为true,收起PLUG窗口时显示微件(缺省值:true).
下面是显示微件的示例。
/**
* 决定PLUG窗口收起时是否显示微件
*/
Glink.showWidgetWhenUnloadSdk(activity, true);
运行微件
如果要运行微件,使用startWidget()方法。
public static void startWidget(Activity activity);
下面是运行微件的示例。
/**
* 运行微件
*/
Glink.startWidget(activity);
关闭微件
如果要关闭微件,使用stopWidget()方法。
public static void stopWidget(Activity activity)
下面是强制关闭微件的示例。
/**
* 关闭微件
*/
Glink.stopWidget(activity);
微件默认位置设置
微件在第一次运行时,显示在界面左侧中央位置。如果要设置微件第一次运行时的默认显示位置,使用setWidgetStartPosition()方法。
但如果是在用户移动微件位置后重新运行的情况,则显示在用户移动后的最终位置。
public static void setWidgetStartPosition(Activity activity,
boolean isLeft, int heightPercentage)
下面是将微件默认位置设置在界面右侧距上部20%处的示例。
/**
* isLeft:true时显示在左侧,false时显示在右侧。
* heightPercentage:竖直方向的位置可使用百分数指定。
*/
Glink.setWidgetStartPosition(activity, false, 20);
截屏
点击微件的截屏按钮可以截取游戏画面。
截屏按钮
点击截屏按钮截屏的功能,通过在setOnWidgetScreenshotClickListener()方法中注册微件截屏按钮的点击监听器(OnWidgetScreenshotClickListener)来实现。
public static void setOnWidgetScreenshotClickListener(Glink.OnWidgetScreenshotClickListener onWidgetScreenshotClickListener);
下面是实现微件截屏按钮点击监听器的示例。
/**
* 设置微件截屏按钮点击监听器
*/
Glink.setOnWidgetScreenshotClickListener(new Glink.OnWidgetScreenshotClickListener() {
@Override public void onScreenshotClick() {
// TODO截屏及PLUG运行(下面是sudo代码)
String uri = screenCapture();
Glink.startImageWrite(getActivity(), "title", uri);
}
});
截屏功能使用设置
使用setUseScreenshot()方法设置是否使用截屏功能。
public static void setUseScreenshot(Activity activity, boolean use);
将use参数值设置为true时,微件显示截屏按钮(缺省值:true)。
下面是使用截屏功能的示例。
/**
* 决定是否使用截屏功能
*/
Glink.setUseScreenshot(activity, true
视频录制
点击录制视频按钮可在游戏过程中录制游戏画面。
设置访问权限
如果要使用视频录制功能,需按照如下方式在在Androidmanifest.xml文件中添加访问权限。
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
使用微件视频录制功能
点击微件视频录制按钮可在游戏过程中录制游戏画面。
视频录制功能使用设置
使用setUseVideoRecord()方法设置是否使用视频录制功能。
public static void setUseVideoRecord(Activity activity, boolean use);
将use参数值设置为true时,微件显示视频录制按钮(缺省值:true)。
低于Android 5.0版本的设备,即使将use参数值设置为true,也不会在微件上显示视频录制按钮。
下面是使用视频录制功能的示例。
/**
* 决定是否使用视频录制功能
*/
Glink.setUseVideoRecord(activity, true)
录制结束监听器
视频录制结束后,需要处理的内容通过在setOnRecordFinishListener()方法中注册录制结束监听器(OnRecordFinishListener)来实现。
public static void setOnRecordFinishListener(OnRecordFinishListener onRecordFinishListener);
下面是实现录制结束监听器的示例。
/**
* 注册录制结束监听器
*/
Glink.setOnRecordFinishListener(new Glink.OnRecordFinishListener() {
@Override public void onRecordFinished(String uri) {
Glink.startVideoWrite(MainActivity.this, -1, "title", "subject", uri);
}
});
使用游戏视频录制功能
游戏开发商可通过设置视频录制按钮支持游戏画面的录制。
视频录制开始与结束
如果要开始录制视频,使用startRecord()方法。
/*
开始录制视频
*/
PlugRecordManager.startRecord(Activity activity);
如果要结束录制视频,使用stopRecord()方法。
/*
结束视频录制
*/
PlugRecordManager.stopRecord();
视频录制监听器
利用游戏开发商的按钮录制视频时所发生的事件,通过如下回调监听器进行处理。
public interface OnRecordManagerListener {
void onStartRecord();
void onErrorRecord();
void onFinishRecord(String uri);
}
下面是实现视频录制监听器的示例。
PlugRecordManager.setOnRecordManagerListener(
new PlugRecordManager.OnRecordManagerListener() {
@Override public void onStartRecord() {
//record started
}
@Override public void onErrorRecord() {
//recording error
}
@Override public void onFinishRecord(String uri) {
//record finished
}
});
App Scheme处理
在游戏中,点击PLUG主页显示的横幅图片,即可移动至App Scheme运行游戏功能。
用于引导前往App Scheme的横幅图片在Cafe管理菜单下添加。
发生前往App Scheme的横幅图片点击事件时,处理App Scheme的功能通过在setOnClickAppSchemeBannerListener()方法中注册App Scheme监听器(OnClickAppSchemeBannerListener)来实现。
public static void setOnClickAppSchemeBannerListener( OnClickAppSchemeBannerListener onClickAppSchemeBannerListener);
下面是实现App Scheme处理的OnClickAppSchemeBannerListener监听器示例。
// 设置App Scheme监听器
Glink.setOnClickAppSchemeBannerListener(new Glink.OnClickAppSchemeBannerListener() {
@Override public void onClickAppSchemeBanner(String appScheme) {
// 将Cafe管理中设置好的appScheme字符串传递给PLUG
// 编写处理各appScheme的代码
Toast.makeText(MainActivity.this, appScheme, Toast.LENGTH_LONG).show();
}
});
回调监听器
PLUG中发生的事件通过注册回调监听器来处理。
PLUG启动监听器
OnSdkStartedListener是处理PLUG启动时所发生事件的回调监听器。
需要处理的内容通过在setOnSdkStartedListener()方法中注册OnSdkStartedListener来实现。
public static void setOnSdkStartedListener(Glink.OnSdkStartedListener onSdkStartedListener);
下面是实现启动PLUG监听器的示例。
// 设置启动PLUG监听器
Glink.setOnSdkStartedListener(new Glink.OnSdkStartedListener() {
@Override public void onSdkStarted() {
Toast.makeText(MainActivity.this, "플러그 시작", Toast.LENGTH_LONG).show();
}
});
退出PLUG监听器
OnSdkStoppedListener是处理退出PLUG时所发生事件的回调监听器。
需要处理的内容通过在setOnSdkStoppedListener()方法中注册OnSdkStoppedListener来实现。
public static void setOnSdkStoppedListener(Glink.OnSdkStoppedListener onSdkStoppedListener);
下面是实现退出PLUG监听器的示例。x
// 设置退出PLUG监听器
Glink.setOnSdkStoppedListener(new Glink.OnSdkStoppedListener() {
@Override public void onSdkStopped() {
Toast.makeText(MainActivity.this, "플러그 종료", Toast.LENGTH_LONG).show();
}
});
App Scheme监听器
onClickAppSchemeBannerListener是处理游戏用户点击前往App Scheme的横幅图片时所发生事件的回调监听器。
关于App Scheme的详细内容,请参考“App Scheme”部分。
需要处理的内容,通过在setOnClickAppSchemeBannerListener()方法中注册OnClickAppSchemeBannerListener来实现。
public static void setOnClickAppSchemeBannerListener( OnClickAppSchemeBannerListener onClickAppSchemeBannerListener);
下面是实现App Scheme监听器的示例。
public static void setOnClickAppSchemeBannerListener( OnClickAppSchemeBannerListener onClickAppSchemeBannerListener)
// 设置App Scheme监听器
Glink.setOnClickAppSchemeBannerListener(new Glink.OnClickAppSchemeBannerListener() {
@Override public void onClickAppSchemeBanner(String appScheme) {
// 将Cafe管理中设置好的appScheme字符串传递给PLUG
// 编写处理各appScheme的代码
Toast.makeText(MainActivity.this, appScheme, Toast.LENGTH_LONG).show();
}
});
Cafe 注册监听器
OnJoinedListener是处理游戏用户通过PLUG注册Cafe时所发生事件的回调监听器。
需要处理的内容,通过在setOnJoinedListener()方法中注册onJoinedListener来实现。
public static void setOnJoinedListener(Glink.OnJoinedListener onJoinedListener);
下面是实现Cafe注册监听器的示例。
// 设置Cafe注册监听器
Glink.setOnJoinedListener(new Glink.OnJoinedListener() {
@Override public void onJoined() {
Toast.makeText(MainActivity.this, "注册Cafe成功 ", Toast.LENGTH_SHORT).show();
}
});
发帖监听器
OnPostedArticleListener是处理用户在PLUG发帖时所发生事件的回调监听器。
需要处理的内容,通过在setOnPostedArticleListener()方法中注册OnPostedArticleListener来实现。
public static void setOnPostedArticleListener( Glink.OnPostedArticleListener onPostedArticleListener);
下面是实现发帖监听器的示例。
// 设置发帖监听器
Glink.setOnPostedArticleListener(new Glink.OnPostedArticleListener() {
@Override public void onPostedArticle(int menuId, int imageCount, int videoCount) {
String message = String.format("发帖成功。. (from listener, menu: %d)", menuId);
Toast.makeText(MainActivity.this, message, Toast.LENGTH_SHORT).show();
}
});
评论发表监听器
OnPostedCommentListener는 사용자가 플러그에서 게시글에 댓글을 등록했을 때 발생하는 이벤트를 처리하는 콜백 리스너다.
需要处理的内容,通过在setOnPostedCommentListener()方法中注册OnPostedCommentListener来实现。
public static void setOnPostedCommentListener( Glink.OnPostedCommentListener onPostedCommentListener);
下面是实现评论发表监听器的示例。
// 设置评论发表监听器
Glink.setOnPostedCommentListener(new Glink.OnPostedCommentListener() {
@Override public void onPostedComment(int articleId) {
String message = String.format("评论成功。 (from listener, 贴文: %d)", articleId);
Toast.makeText(MainActivity.this, message, Toast.LENGTH_SHORT).show();
}
});
投票结束监听器
OnVotedListener是处理用户在PLUG参与发起投票的贴文投票活动时所发生事件的回调监听器。
需要处理的内容,通过在setOnVotedListener()方法中注册OnVotedListener来实现。
public static void setOnVotedListener(Glink.OnVotedListener listener);
下面是实现投票结束监听器的示例。
// 设置投票结束监听器
Glink.setOnVotedListener(new Glink.OnVotedListener() {
@Override public void onVoted(int articleId) {
String message = String.format("投票成功。 (from listener, 贴文: %d)", articleId);
Toast.makeText(MainActivity.this, message, Toast.LENGTH_SHORT).show();
}
});
截屏按钮点击监听器
OnWidgetScreenshotClickListener是处理用户点击微件上截屏按钮时所发生事件的回调监听器。关于截屏按钮的详细内容,请参考“微件”部分。
需要处理的内容,通过在setOnWidgetScreenshotClickListener()方法中注册OnWidgetScreenshotClickListener来实现。
public static void setOnWidgetScreenshotClickListener(Glink.OnWidgetScreenshotClickListener onWidgetScreenshotClickListener);
下面是实现截屏按钮点击监听器的示例。只有通过回调监听器设置截屏功能,才能在点击截屏按钮时进行截屏。
// 设置微件截屏按钮点击监听器
Glink.setOnWidgetScreenshotClickListener(new Glink.OnWidgetScreenshotClickListener() {
@Override public void onScreenshotClick() {
// TODO截屏及PLUG运行(下面是sudo代码)
String uri = screenCapture();
Glink.startImageWrite(getActivity(), "title", uri);
}
});
录制结束监听器
onRecordFinishListener是处理PULG视频录制结束时所发生事件的回调监听器。
需要处理的内容,通过在setOnRecordFinishListener()方法中注册OnRecordFinishListener来实现。
public static void setOnRecordFinishListener(OnRecordFinishListener onRecordFinishListener);
下面是实现录制结束监听器的示例。
// 设置录制结束监听器
Glink.setOnRecordFinishListener(new Glink.OnRecordFinishListener() {
@Override public void onRecordFinished(String uri) {
Glink.startVideoWrite(MainActivity.this, -1, "title", "subject", uri);
}
});
游戏ID绑定
PLUG支持绑定用户的游戏ID和CafeID来进行管理。绑定后的游戏ID和Cafe ID目录可在Cafe的管理菜单下确认。
如果要绑定游戏ID和Cafe ID,使用syncGameUserId()方法。
public static void syncGameUserId(Activity activity, String gameUserId);
下面是绑定游戏ID和Cafe ID的示例。
/**
* 绑定游戏ID和Cafe ID
*/
Glink.syncGameUserId(activity, "8263821")
主题颜色变更
可变更PLUG的主题颜色。
如果要更改主题颜色,使用setThemeColor()方法。
/**
* themeColorCSString参数的缺省值为“#00c73c”.
* tabBackgroundColorCSSString 参数的缺省值为“#44484e”.
* tabBackgroundColorCSSString参数建议使用缺省值.
**/
public static void setThemeColor(String themeColorCSSString);
public static void setThemeColor(String themeColorCSSString, String tabBackgroundColorCSSString)
themeColorCSString: 主题默认使用的颜色(缺省值:#00c73c)
tabBackgroundColorCSSString: 标签菜单的背景颜色(缺省值:#44484e)建议使用缺省值。
注意 CSS颜色值内不得输入alpha值。
下面是更改主题颜色的示例。
Glink.setThemeColor("#2e65d9");
Glink.setThemeColor("#2e65d9", "#44484e");
资源图片变更
包含于NAVER Cafe PLUG库中的资源图片可按照如下方式进行更改。
解压NAVER Cafe PLUG库文件(.aar文件)。
将解压后文件夹下/res/drawable-xhdpi文件夹中的图片更改为目标图片。
应用新压缩的NAVER Cafe PLUG库并导入项目。
注意 更改图片时,图片大小须和原图片大小一致。