項目上線前涩维,升級友盟分享的插件至新版本,發(fā)現(xiàn)android部分需要配置工程中各項內容翔冀,意味著每次打新版都需要多一系列步驟导街,實在是太蠢了,在客服聯(lián)系過友盟后纤子,明確表示不支持Unity下plugin的方式搬瑰,在一系列決定之后,決定逆向來把這些步驟集成至Unity項目中控硼。
仔細觀察需要導入的src下的文件后泽论,發(fā)現(xiàn)主要分為三塊內容
- socialsdk橋接文件
- 項目各個平臺初始化及Key值注冊(之前版本是在Unity進行初始化)
- wxapi下微信的回調
其中后兩項是在項目包下
socailsdk集成
首先創(chuàng)建一個空的android-lib項目
android create lib-project --name UmengPlugin --target X --path ./UmengPlugin --package com.umeng.socialsdk
將src拷入項目中(com.umeng.socialsdk包,其他的不用打在這個項目中)
最后修訂一下build.xml卡乾,在project的tag下新增
<target name="jar" depends="debug"> <jar destfile="bin/SocialSDK.jar" basedir="bin/classes"/> </target>
最后在項目目錄下用ant jar就能編譯了
初始化
集成文檔中是放在App.java中翼悴,并在AndroidManifest中新增一個application,死活初始化不成功幔妨,干脆直接做成靜態(tài)方法主動在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