Exemple #1
0
    //直接分享到各个社交平台
    //platform 平台名,text 分享的文字,imagePath 分享的照片文件路径,callback 分享成功或失败的回调

    public static void DirectShare(Platform platform, string text, string imagePath, ShareDelegate callback = null)
    {
        if (string.IsNullOrEmpty(appKey))
        {
            Debug.LogError("请设置appkey");
            return;
        }

#if UNITY_ANDROID
        try
        {
            SetPlatforms(new Platform[] { platform });

            Run(delegate
            {
                var androidShareListener = new AndroidShareListener(callback);
                UMSocialSDK.CallStatic("directShare", text, imagePath, (int)platform, androidShareListener);
            });
        }

        catch (AndroidJavaException exp)
        {
            Debug.LogError(exp.Message);
        }
#elif UNITY_IPHONE
        shareDelegate = callback;
        directShare(text, imagePath, (int)platform, ShareCallback);
#endif
    }
    //打开分享面板
    //platforms 需要分享的平台数组 ,text 分享的文字, imagePath 分享的照片文件路径, callback 分享成功或失败的回调
    //imagePath可以为url 但是url图片必须以http://或者https://开头
    //imagePath如果为本地文件 只支持 Application.persistentDataPath下的文件
    //例如 Application.persistentDataPath + "/" +"你的文件名"
    //如果想分享 Assets/Resouces的下的 icon.png 请前使用 Resources.Load() 和 FileStream 写到 Application.persistentDataPath下
    public static void OpenShareWithImagePath(Platform[] platforms, string text, string imagePath, string title, string targeturl, ShareDelegate callback = null)
    {
        if (platforms == null)
        {
            Debug.LogError("平台不能为空");
            return;
        }
        //var _platforms = platforms ?? Enum.GetValues(typeof(Platform)) as Platform[];
        var length       = platforms.Length;
        var platformsInt = new int[length];

        for (int i = 0; i < length; i++)
        {
            platformsInt[i] = (int)platforms[i];
        }

#if UNITY_ANDROID
        try
        {
            Run(delegate
            {
                var androidShareListener = new AndroidShareListener(callback);
                UMSocialSDK.CallStatic("openShareWithImagePath", platformsInt, text, imagePath, title, targeturl, androidShareListener);
            });
        }
        catch (AndroidJavaException exp)
        {
            Debug.LogError(exp.Message);
        }
#elif UNITY_IPHONE
        shareDelegate = callback;
        openShareWithImagePath(platformsInt, length, text, imagePath, title, targeturl, ShareCallback);
#endif
    }
    //直接分享到各个社交平台
    //platform 平台名,text 分享的文字,imagePath 分享的照片文件路径,callback 分享成功或失败的回调

    public static void DirectShare(Platform platform, string text, string imagePath, string title, string targeturl, ShareDelegate callback = null)
    {
#if UNITY_ANDROID
        try
        {
            // SetPlatforms(new Platform[] { platform });

            Run(delegate
            {
                var androidShareListener = new AndroidShareListener(callback);
                UMSocialSDK.CallStatic("directShare", text, imagePath, title, targeturl, (int)platform, androidShareListener);
            });
        }

        catch (AndroidJavaException exp)
        {
            Debug.LogError(exp.Message);
        }
#elif UNITY_IPHONE
        shareDelegate = callback;
        directShare(text, imagePath, title, targeturl, (int)platform, ShareCallback);
#endif
    }