一、Mob官网注册并下载unity版本的shareSDK
1、进入开发者平台,创建应用;
2、创建成功后获得应用的 App Key 和 App Secret,最好保存下来以便后续使用;
3、下载ShareSDK,unity2019以后的版本,选择SourceCodeGradle版本,我这里用的是unity 2021;github地址:GitHub - MobClub/New-Unity-For-ShareSDK at SourceCodeGradle
二、将shareSDK导入unity并进行配置
按照官方集成文档将ShareSDK进行配置
官方文档:MobTech集成文档-MobTech
其中 launcherTemplate.gradle 文件中所添加的代码,是为了显示需要分享的平台,可以根据需求添加需要分享的平台名称,平台名称在 PlatformType.cs 文件中。
devInfo {
Wechat {
appId "wx4868b35061f87885"
appSecret "64020361b8ec4c99936c0e3999a9f249"
withShareTicket true
bypassApproval false
enable true
}
}
三、在unity中进行配置
1、通过File -> build Settings 选择(Switch Platform) Android 平台,点击PlayerSettings进行配置;
2、Publishing Settings配置:Project Keystore 下的Path选择导入SDK资源中自带的文件demokey.keystore,Password是123456;
3、Other Settings配置:填写Package Name. 注意如果需要分享到微信,则Package Name必须与微信开放平台填写的包名一致。
四、编写实现分享逻辑代码
点击分享按钮后,出现平台进行分享,本代码只做了分享文字的功能,若想分享其它内容,可以参考SDK中的demo.cs脚本。
using System.Collections;
using UnityEngine;
using UnityEngine.UI;
using cn.sharesdk.unity3d;
using TMPro;
public class Share : MonoBehaviour
{
public Button shareBtn;
private ShareSDK ssdk;
ShareContent content;
void Start()
{
Init();
InitBtns();
}
//获得ShareSDK对象,并且注册分享后的回调
void Init()
{
ssdk = GameObject.Find("ARCamera").GetComponent<ShareSDK>();
ssdk.shareHandler = ShareResultHandler;
}
//初始化按钮的点击事件
void InitBtns()
{
shareBtn.onClick.AddListener(OnClickWeChatBtn);
}
//测试短信
//void OnClickTestMsgBtn()
//{
// PrintInfo("OnClickTestMsgBtn");
// ssdk.ShowPlatformList(new PlatformType[] { PlatformType.SMS }, GetShareInfo(" SMS "), 100, 100);
//}
//测试微信
void OnClickWeChatBtn()
{
ssdk.ShowPlatformList(new PlatformType[] { PlatformType.WeChat }, GetShareInfo("we chat"), 100, 100);
}
//测试邮件按钮
//void OnClickEmailBtn()
//{
// PrintInfo("OnClickEmailBtn");
// ssdk.ShowPlatformList(new PlatformType[] { PlatformType.Mail }, GetShareInfo("mail"), 100, 100);
//}
//测试直接打开
//void OnClickShowContentBtn()
//{
// PrintInfo("OnClickShowContentBtn");
// ssdk.ShareContent(PlatformType.SMS, GetShareInfo("SMS"));
//}
//获得分享的内容结构
ShareContent GetShareInfo(string platformType)
{
ShareContent content = new ShareContent();
content.SetText("this is a test string.");
//content.SetImageUrl("https://f1.webshare.mob.com/code/demo/img/1.jpg");
//content.SetTitle("test title:" + platformType);
//content.SetTitleUrl("http://www.mob.com");
//content.SetSite("Mob-ShareSDK");
//content.SetSiteUrl("http://www.mob.com");
//content.SetUrl("http://www.mob.com");
//content.SetComment("test description");
//content.SetMusicUrl("http://mp3.mwap8.com/destdir/Music/2009/20090601/ZuiXuanMinZuFeng20090601119.mp3");
content.SetShareType(ContentType.Text);
return content;
}
//分享后的回调
void ShareResultHandler(int reqID, ResponseState state, PlatformType type, Hashtable result)
{
if (state == ResponseState.Success)
{
print("share result :");
print(MiniJSON.jsonEncode(result));
}
else if (state == ResponseState.Fail)
{
print("fail! throwable stack = " + result["stack"] + "; error msg = " + result["msg"]);
}
else if (state == ResponseState.Cancel)
{
print("cancel !");
}
}
}
五、打包生成 .apk 安装包
参考
Unity接入ShareSDK的操作详解(Demo)_sharesdk修改jar包-CSDN博客
【ShareSDK】Unity集成 - 知乎 (zhihu.com)
https://github.com/MobClub/New-Unity-For-ShareSDK/tree/SourceCodeGradle