PLUG ANDROID 应用指南

应用指南

下载最新版本

运行示例项目

在Android Studio中运行PLUG示例项目的方法如下。

  1. 在Android Studio中打开sample/navercafesdk-sample-android-studio文件夹中的项目。

  2. 导入项目。

  3. 确认PLUG在应用程序中是否正常运行。

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)

确认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服务。

透明度

说明

Alpha值100%

向PLUG报告点击事件

Alpha值100%以下

向游戏报告点击事件

利用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

视频录制

点击录制视频按钮可在游戏过程中录制游戏画面。

  • 视频录制功能支持Android 5.0以上设备。

设置访问权限

如果要使用视频录制功能,需按照如下方式在在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值。

  • 正确示例:#ff9800

  • 错误示例:#e2ff9800

下面是更改主题颜色的示例。

Glink.setThemeColor("#2e65d9"); 
Glink.setThemeColor("#2e65d9", "#44484e");

资源图片变更

包含于NAVER Cafe PLUG库中的资源图片可按照如下方式进行更改。

  1. 解压NAVER Cafe PLUG库文件(.aar文件)。

  2. 将解压后文件夹下/res/drawable-xhdpi文件夹中的图片更改为目标图片。

  3. 将解压后的文件夹重新压缩为库文件(.aar文件)

  4. 应用新压缩的NAVER Cafe PLUG库并导入项目。

注意 更改图片时,图片大小须和原图片大小一致。

Last updated