# iOS UE4 接入步骤
# 引入文件到项目中
解压缩 SDK 包,需要将 ZipArchive.embeddedframework.zip 添加到 PublicAdditionalFrameworks,将 libSlugSDK.a 添加到 PublicAdditionalLibraries,例如:
PublicAdditionalFrameworks.Add(
new UEBuildFramework(
"ZipArchive",
"../ThirdParty/ZipArchive.embeddedframework.zip",
"Resources/SlugSDK.bundle"
)
);
var libPath = Path.GetFullPath(Path.Combine(ModuleDirectory, "../ThirdParty" ));
PublicAdditionalLibraries.Add(Path.Combine(libPath, "libSlugSDK.a"));
2
3
4
5
6
7
8
9
# 添加权限
为了支持长按保存图片(不支持长按保存 iframe
中的图片),需在 Info.plist 中添加配置项 NSPhotoLibraryAddUsageDescription
、NSPhotoLibraryUsageDescription
# 拼接用户参数
首先游戏客户端需在微社区首页 URL 上拼接以下参数:
参数名 | 描述 | 必须 |
---|---|---|
openid | 游戏的 openid | 如果是 msdkv5 版本则必传 |
gameid_v5 | msdkv5 分配的游戏的 gameid | 如果是 msdkv5 版本则必传 |
areaid | 账号类型:1(微信),2(QQ) | 是 |
partition | 区服 id,若无则传 0 | 是 |
platid | 平台类型:0(iOS),1(Android) | 是 |
roleid | 角色 id | 是 |
lng | 用户当前位置:经度 | 否 |
lat | 用户当前位置:纬度 | 否 |
示例一:
首页 URL:https://sy.qq.com/hyrzol/ingame/
拼接后 URL:https://sy.qq.com/hyrzol/ingame/?openid=xxx&gameid_v5=xxx&areaid=1&platid=0&partition=8195&roleid=2306687434798319382&lng=113.944527&lat=22.547869
示例二:
首页 URL:https://sy.qq.com/zhuoyao/ingame/?router=moment
拼接后 URL:https://sy.qq.com/zhuoyao/ingame/?router=moment&openid=xxx&gameid_v5=xxx&areaid=2&partition=0&platid=1&roleid=40520350780&lng=113.944527&lat=22.547869
# 打开微社区
参数说明:
/*
url为微社区的首页地址,需参考"拼接用户参数",无需带MSDK登录态,SDK会自动调用MSDK的接口拼上登录态参数
communitySupportedOrientations为微社区要支持的方向(1:只支持横屏,2:只支持竖屏,3:横竖屏都支持)
red、green、blue、alpha为微社区的背景色,取值范围都为0 ~ 255,alpha取值:0(完全透明)~ 255(完全不透明);如果想使用默认的背景色(白色),就都传-1
gameSupportedOrientations为游戏的方向(1:只支持横屏,2:只支持竖屏)
returnCallback为从微社区返回到游戏的回调,可在这个回调里打开游戏的声音(建议在打开微社区之前先关闭游戏的声音,以免游戏的声音与微社区视频的声音同时存在)
*/
void openIngameCommunit(const char *url, int communitySupportedOrientations, int red, int green, int blue, int alpha, int gameSupportedOrientations, void (^returnCallback)(const char *));
2
3
4
5
6
7
8
使用示例:
#include "SlugSdk.h"
SlugSdkUe::SlugSdk::openIngameCommunit("https://ssr.sy.qq.com/gp/index?areaid=1&platid=0&partition=8195&roleid=2306687434798319382", 1, -1, -1, -1, -1, 1, ^(const char *response) {
//response可能为NULL
});
2
3
4
5
# 添加横竖屏切换功能
如果横屏游戏需要竖屏的微社区,或者竖屏游戏需要横屏的微社区,就需要在IOSAppDelegate.cpp中做如下特殊处理:
#import "IngameCustomNSURLProtocol.h"
- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
if ([IngameCustomNSURLProtocol isIngameBrowserViewController]) /*微社区支持所有方向,其他的跟游戏的方向保持一致*/
return UIInterfaceOrientationMaskAll;
...
return ...;
}
2
3
4
5
6
7
8
9
10