shareSdk 新浪微博的登录分享测试
测试 分享 登录 微博 新浪
2023-09-11 14:20:51 时间
//todo … 待完善 …
using cn.sharesdk.unity3d;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ShareSDKManager : MonoBehaviour {
private static ShareSDKManager _instance;
public static ShareSDKManager Instance
{
get
{
return _instance;
}
}
[HideInInspector]
public ShareSDK ssdk;
// Use this for initialization
void Start () {
//单例
_instance = this;
//加载不销毁
DontDestroyOnLoad(this.gameObject);
//在ShareSDK的awake方法中做了初始化
ssdk = GetComponent<ShareSDK>();
//shareSDKUtils.InitSDK(appKey,appSecret); //初始化
//跳转场景
UnityEngine.SceneManagement.SceneManager.LoadScene(1);
}
}
using cn.sharesdk.unity3d;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Networking;
public class Login : MonoBehaviour
{
ShareSDK ssdk;
// Use this for initialization
void Start()
{
//绑定单例的sdk
ssdk = ShareSDKManager.Instance.ssdk;
//指定授权结果的回调函数
ssdk.authHandler = OnAuthResultHandker;
}
//使用新浪微博账号登录
public void OnSinaLoginBtn()
{
//检测指定的平台是否已经授权过了
if (ssdk.IsAuthorized(PlatformType.SinaWeibo))
{
//提示
//将授权信息,写入到自定有的文件中 ... 查看授权信息内容...
Tools.WriteFile(Application.persistentDataPath, "AuthInfo.data", ssdk.GetAuthInfo(PlatformType.SinaWeibo).toJson());
Tools.MakeToast("微博用户:" + ssdk.GetAuthInfo(PlatformType.SinaWeibo)["userName"] + "授权成功");
//跳转到游戏场景
UnityEngine.SceneManagement.SceneManager.LoadScene(1);
}
else
{
//指定平台的授权
ssdk.Authorize(PlatformType.SinaWeibo);
}
}
public void ShareWeibo()
{
ShareContent content = new ShareContent();
content.SetTitle("这是我的第一个试应用 ..."); //看起来没什么用
content.SetText("我要分享到微博 ...."); //要分享的内容
content.SetUrl("https://blog.csdn.net/czhenya"); //分享链接
content.SetImageUrl("https://blog.csdn.net/czhenya");
content.SetShareType(ContentType.Webpage); //分享类型
ssdk.ShareContent(PlatformType.SinaWeibo, content);
ssdk.shareHandler += OnAuthResultHandker;//添加回调
}
public void ShareImg() //试用未成功 2018.12.21
{
ShareContent content = new ShareContent();
content.SetImageUrl(Application.dataPath + "czy.png");
content.SetShareType(ContentType.Image);
ssdk.ShareContent(PlatformType.SinaWeibo, content);
ssdk.shareHandler += OnAuthResultHandker;
}
/// <summary>
/// 回调函数
/// </summary>
/// <param name="reqID"></param>
/// <param name="state">授权状态</param>
/// <param name="type">授权平台类型</param>
/// <param name="data">有关授权的数据</param>
void OnAuthResultHandker(int reqID, ResponseState state, PlatformType type, Hashtable data)
{
switch (state) //授权状态...
{
case ResponseState.Success: //授权成功
//ssdk.GetAuthInfo(type); //授权信息
//自行编写工具类,写为文件
Tools.WriteFile(Application.persistentDataPath, "AuthResult.data", data.toJson());
Tools.WriteFile(Application.persistentDataPath, "AuthInfo.data", ssdk.GetAuthInfo(type).toJson());
Tools.MakeToast("微博用户:" + ssdk.GetAuthInfo(type)["userName"] + "授权成功");
//登录
UnityEngine.SceneManagement.SceneManager.LoadScene(1);
break;
case ResponseState.Fail: //授权失败
//清空授权信息
ssdk.CancelAuthorize(type);
Tools.MakeToast("授权失败");
break;
case ResponseState.Cancel: //取消授权
ssdk.CancelAuthorize(type);
Tools.MakeToast("取消授权");
break;
default: break;
}
}
}
using System.Collections;
using System.Collections.Generic;
using System.IO;
using UnityEngine;
/// <summary>
/// 工具类
/// </summary>
public class Tools {
/// <summary>
/// 写为文件
/// </summary>
/// <param name="path">路径</param>
/// <param name="name">名称</param>
/// <param name="info">信息</param>
public static void WriteFile(string path, string name, string info)
{
StreamWriter sw;
FileInfo fi = new FileInfo(path + "/" + name);
sw = fi.CreateText();
sw.Close();
sw.Dispose();
}
/// <summary>
/// 读取文件
/// </summary>
/// <param name="path"></param>
/// <param name="name"></param>
/// <returns></returns>
public static string ReadFile(string path, string name)
{
StreamReader sr;
FileInfo fi = new FileInfo(path + "/" + name);
sr = fi.OpenText();
string info = sr.ReadToEnd();
sr.Close();
sr.Dispose();
return info;
}
//通过C# 代用Java代码 实现(类似再按一下退出)的吐司提示效果
public static void MakeToast(string info)
{
AndroidJavaObject currenActivity = new AndroidJavaObject("com.unity3d.player.UnityPlayer").GetStatic<AndroidJavaObject>("currentActivity");
AndroidJavaClass Toast = new AndroidJavaClass("android.widget.Toast");
currenActivity.Call("runOnUiThread", new AndroidJavaRunnable(() =>
{
Toast.CallStatic<AndroidJavaObject>("makeText", currenActivity, info, Toast.GetStatic<int>("LENGTH_LONG")).Call("show");
}));
}
}
相关文章
- 做测试8年,33岁前只想追求大厂高薪,今年只求稳定收入
- 技术分享 | 接口自动化测试如何进行认证?
- 技术分享 | 如何使用代理配置快速定位接口测试脚本问题?
- 技术分享 | 接口测试之HTTP 协议讲解
- 技术分享 | 接口测试之HTTP、HTTPS 抓包分析
- 如何做一个测试经理
- 测试人生 | 拿到多个 offer 从了一线互联网公司并涨薪70%,90后小哥哥免费分享面试经验~
- Python 自动化测试(五): Pytest 结合 Allure 生成测试报告
- 技术分享 | 一文带你了解测试流程的体系
- 技术分享 | 做为测试,那些必须掌握的测试技术体系
- 测试基于2SK241的150kHz的导航信号高频放大器
- 【软件测试】6年资深测试总结的,测试人常常犯的9大误区,背锅不存在的......
- 【测试开发】测试开发的核心竞争力?总得破局,不再点点点......
- 【软件测试】移动app、接口、web自动化测试区别
- 软件测试之银行测试
- 车载测试中,执行器性能测试怎么做?
- 技术分享 | 接口自动化测试之JSON Schema模式该如何使用?
- 技术分享 | 接口测试之HTTP 协议讲解
- 技术分享 | App测试时常用的adb命令你都掌握了哪些呢?
- 技术分享 | web自动化测试-PageObject 设计模式
- 什么是测试自动化金字塔?
- 《黑客秘笈——渗透测试实用指南(第2版)》—第1章1.3节建立其他的服务器
- 汇编语言---位操作指令(gcc内联汇编测试)
- 渗透测试基础- - -web日志分析
- 我的软件测试之旅:(4)并行——自动化回归测试
- 再谈浏览器兼容性测试
- 微软发誓在内部对Windows 10更新进行全面测试