跳到主要内容

二维码插件

二维码插件为您的应用程序提供了使用的二维码操作功能,包括打开二维码扫描器、显示二维码、自定义二维码图标以及位置标记颜色的方法。

二维码扫描器界面包含以下3个主要部分:

  • 我的二维码:生成并显示二维码。
  • 相册:从系统相册中选择二维码图片。
  • 轻触照亮:打开设备的手电筒功能,在环境亮度较低时自动显示。
图片: 扫描器界面

注意

对于 iOS 14.0+ 及 Android 14+ 的设备,如果应用在访问系统相册时受到限制,点击 相册 后仅显示玩家指定的照片。

受限访问的相册:
图片: 受限照片访问

前提条件

  1. 集成 Player Network SDK
2. iOS 配置
警告

对于使用 Unity 的 iOS 应用,实现二维码插件功能前请先完成 Game Center 的配置。

在项目的 Info.plist 文件中添加以下键和值:

  • UISupportsRightToLeft:启用从右到左语言支持。

  • CFBundleAllowMixedLocalizations:允许应用程序使用混合语言本地化。

  • PHPhotoLibraryPreventAutomaticLimitedAccessAlert:防止弹出“有限照片访问”警告框。

  • NSPhotoLibraryUsageDescription:说明应用为何需要访问照片库。

  • NSCameraUsageDescription:说明应用为何需要使用相机。

      <plist version="1.0">
    <dict>
    <key>UISupportsRightToLeft</key>
    <true/>

    <key>CFBundleAllowMixedLocalizations</key>
    <true/>

    <key>PHPhotoLibraryPreventAutomaticLimitedAccessAlert</key>
    <true/>

    <key>NSPhotoLibraryUsageDescription</key>
    <string>本应用需要访问您的照片库以便上传和分享照片。</string>

    <key>NSCameraUsageDescription</key>
    <string>本应用需要访问您的相机以拍摄照片或视频用于个人资料或内容发布。</string>
    </dict>
    </plist>

注册回调函数

添加以下回调处理:

// 添加回调函数
public void AddQRCodeObserver()
{
INTLAPI.AddQRCodeResultObserver(OnQRCodeResultEvent);
}

// 移除回调函数
public void RemoveQRCodeObserver()
{
INTLAPI.RemoveQRCodeResultObserver(OnQRCodeResultEvent);
}

// 处理 INTLQRCodeResult 回调事件
private void OnQRCodeResultEvent(INTLQRCodeResult qrCodeRet)
{
Debug.Log("OnQRCodeResultEvent");

string methodTag = "";

if (qrCodeRet.MethodId == (int)INTLMethodID.INTL_QRCODE_OPEN_SCANNER)
{
methodTag = "OpenQRScanner";
}
else if (qrCodeRet.MethodId == (int)INTLMethodID.INTL_QRCODE_SHOW)
{
methodTag = "ShowQRCode";
}
else if (qrCodeRet.MethodId == (int)INTLMethodID.INTL_QRCODE_SET_ICON)
{
methodTag = "SetIcon";
}
else if (qrCodeRet.MethodId == (int)INTLMethodID.INTL_QRCODE_SET_POSITION_MARKER_COLOR)
{
methodTag = "SetPositionMarkerColor";
}
}

OpenQRScanner

根据指定参数打开二维码扫描器。

  • qrCodeContent:包含生成二维码所需信息的 JSON 字符串,可根据需求进行自定义
string qrCodeContent = "{\
\"deeplink\": \"https://example.com/path\", \
\"openid\": \"user-12345\", \
\"additionalKey1\": \"value1\"\
}";

INTLAPI.OpenQRScanner(qrCodeContent);

ShowQRCode

显示指定的二维码内容。

  • qrCodeContent:包含生成二维码所需信息的 JSON 字符串,可根据游戏需求进行自定义
string qrCodeContent = "{\
\"deeplink\": \"https://example.com/path\", \
\"openid\": \"user-12345\", \
\"additionalKey1\": \"value1\"\
}";

INTLAPI.ShowQRCode(qrCodeContent);
图片: 显示二维码

SetIcon

设置二维码中的自定义图标。

  • imageURL:图标 URL
string imageURL = "https://example.com/icon.png";

INTLAPI.SetIcon(imageURL);
图片: 设置图标

SetPositionMarkerColor

设置二维码的位置标记颜色。

  • hexCode:定位点颜色的十六进制字符串,如 #FF5733
string hexCode = "#FF5733";

INTLAPI.SetPositionMarkerColor(hexCode);
图片: 设置位置标记颜色