美文网首页
unity逆向集成友盟分享

unity逆向集成友盟分享

作者: lyx2002py | 来源:发表于2017-04-06 10:16 被阅读0次

    项目上线前,升级友盟分享的插件至新版本,发现android部分需要配置工程中各项内容,意味着每次打新版都需要多一系列步骤,实在是太蠢了,在客服联系过友盟后,明确表示不支持Unity下plugin的方式,在一系列决定之后,决定逆向来把这些步骤集成至Unity项目中。


    [集成文档](http://dev.umeng.com/social/unity3d/android)

    仔细观察需要导入的src下的文件后,发现主要分为三块内容

    • socialsdk桥接文件
    • 项目各个平台初始化及Key值注册(之前版本是在Unity进行初始化)
    • wxapi下微信的回调
      其中后两项是在项目包下

    socailsdk集成

    首先创建一个空的android-lib项目
    android create lib-project --name UmengPlugin --target X --path ./UmengPlugin --package com.umeng.socialsdk

    将src拷入项目中(com.umeng.socialsdk包,其他的不用打在这个项目中)


    lib中引用包

    最后修订一下build.xml,在project的tag下新增
    <target name="jar" depends="debug"> <jar destfile="bin/SocialSDK.jar" basedir="bin/classes"/> </target>

    最后在项目目录下用ant jar就能编译了


    编译结果

    初始化

    集成文档中是放在App.java中,并在AndroidManifest中新增一个application,死活初始化不成功,干脆直接做成静态方法主动在unity侧调用更加方便,这里我图省事直接放在UMSocialSDK.java里了,当然也可以新建一个工程,一样的。
    //init import com.umeng.socialize.Config; import com.umeng.socialize.PlatformConfig;
    public static void initWeChat(){ Config.shareType = "u3d"; UMShareAPI.get(mActivity); Config.DEBUG = true; PlatformConfig.setWeixin("wx11111fff111111bb", "11111111111111111111111111111111111"); }

    微信回调

    这里新开一个项目,注意包名与自身项目一致,并在AndroidManifest中新增这个activity
    <activity android:name=".wxapi.WXEntryActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar" android:configChanges="keyboardHidden|orientation|screenSize" android:exported="true" android:screenOrientation="portrait" />

    包引用情况

    将两个jar包放入Plugins\Android\目录下,如果是由旧版本升级还需整理一下,可以参考升级文档
    否则会编译会有冲突。
    再修订一下Social.cs
    public static void Authorize(Platform platform, AuthDelegate callback=null){ \#if UNITY_ANDROID try { UMSocialSDK.CallStatic("initWeChat"); //下面这句要屏蔽掉。。。 //SetPlatforms(new Platform[] { platform }); Run(delegate { var androidAuthListener = new AndroidAuthListener(callback); //UMSocialSDK.CallStatic("fuckUmeng"); UMSocialSDK.CallStatic("authorize", (int)platform, androidAuthListener); }); } catch(AndroidJavaException exp) { Debug.LogError(exp.Message); } }

    结果如下

    最后友盟这半吊子的SDK实在是无力吐槽了。。。

    • umeng_social_sdk v6.4.2

    相关文章

      网友评论

          本文标题:unity逆向集成友盟分享

          本文链接:https://www.haomeiwen.com/subject/huixattx.html