Skip to main content

二维码插件

功能介绍

二维码插件为您的应用程序提供完整的二维码操作功能,包括以下能力:

  • 启动二维码扫描器
  • 显示自定义内容的二维码图片
  • 自定义二维码中心图标
  • 设置二维码位置标记颜色

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

  • 我的二维码:生成并展示携带个人信息的二维码。
  • 相册:从系统相册中选择二维码图片进行识别。
  • 轻触照亮:在光线不足时,开启设备手电筒以辅助扫描。
图片: 扫描器界面

note

在 iOS 14.0+ 和 Android 14+ 的设备上,如果应用访问系统相册受到限制,点击 相册 后仅显示用户授权访问的照片。下图为受限访问的相册界面:

图片: 受限照片访问

前提条件

  1. 集成 Player Network SDK
2. iOS 配置
caution

对于使用 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);

Android 系统默认二维码展示:
图片: Android系统显示二维码

iOS 系统默认二维码展示:
图片: iOS系统显示二维码

SetIcon

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

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

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

SetPositionMarkerColor

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

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

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