項目使用了ShareSDK來做分享功能,ShareSDK還是很良心的作爲一個免費的軟件竟然還有回覆率很高的客服。這幫助了我很多,還有一些問題是在網上查到的答案。過於基礎的知識就不再贅述了,可以通過其他人寫的博客或者官方文檔來了解。
閒言少敘,我們從第一個自定義分享界面開始。
一、自定義分享界面
在分享的時候我們可能不希望用到ShareSDK提供的界面,或者我們需要分享的平臺沒有它提供的那麼多。此時我們就需要進行自定義界面這個工作了。
首先我們看一下原生的Demo是怎麼做的,然後根據它的邏輯進行我們的一些自定義修改。原生的代碼如下:
public void ShowShareMenu()
{
ShareContent content = new ShareContent();
//(Android only) 隱藏九宮格里面不需要用到的平臺(僅僅是不顯示平臺)
//(Android only) 也可以把jar包刪除或者把Enabl屬性e改成false(對應平臺的全部功能將用不了)
String[] platfsList = { ((int)PlatformType.QQ).ToString(), ((int)PlatformType.Facebook).ToString(), ((int)PlatformType.TencentWeibo).ToString() };
content.SetHidePlatforms(platfsList);
content.SetText("---");
//分享圖片鏈接。
content.SetImageUrl("https://car2.autoimg.cn/cardfs/product/g5/M00/2A/9D/1024x0_1_q87_autohomecar__wKjB0lo8bfmAW3jeAANc_bJcaOk942.jpg");
content.SetTitle("---");
//(Android only) 針對Android繞過審覈的多圖分享,傳圖片String數組
String[] imageArray = { "/sdcard/test.jpg", "http://f1.webshare.mob.com/dimgs/1c950a7b02087bf41bc56f07f7d3572c11dfcf36.jpg", "/sdcard/test.jpg" };
content.SetImageArray(imageArray);
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.Image);
//不同平臺分享不同內容
ShareContent customizeShareParams = new ShareContent();
customizeShareParams.SetText("Sina share content");
customizeShareParams.SetImageUrl("http://git.oschina.net/alexyu.yxj/MyTmpFiles/raw/master/kmk_pic_fld/small/107.JPG");
customizeShareParams.SetShareType(ContentType.Text);
customizeShareParams.SetObjectID("SinaID");
content.SetShareContentCustomize(PlatformType.SinaWeibo, customizeShareParams);
//優先客戶端分享
// content.SetEnableClientShare(true);
//使用微博API接口應用內分享 iOS only
// content.SetEnableSinaWeiboAPIShare(true);
ScreenCapture.CaptureScreenshot("ScreenShotToShare");
content.SetImagePath(Application.persistentDataPath+ "/ScreenShotToShare");
//通過分享菜單分享
ssdk.ShowPlatformList(null, content, 100, 100);
//重寫分享界面。
//ssdk.ShareContent();
}
上邊的代碼片段就是ShareSDK用來調出分享的代碼,核心的代碼是:”ssdk.ShareContent()”這一句。我們只需要重新設置一下Content,然後通過自己寫的UGUI去調用分享的方法就可以了。重新設置界面的工作需要在Unity中用UGUI自己拼一個界面就可以了。下圖是我自己做的分享界面。
調用代碼如下:
//分享到微信朋友圈
public void ShareWechatMoments()
{
ShareContent content = new ShareContent();
content = ShareContentSet(content);
//重寫分享界面。
ssdk.ShareContent(PlatformType.WeChatMoments, content);
}
//設置Content的方法,這個方法可以統一設置分享的Text以及分享形式。如果需要增加平臺會很方便。
public ShareContent ShareContentSet(ShareContent content)
{
content.SetText("這裏是分享內容");
content.SetComment("");
content.SetShareType(ContentType.Image);
//content.SetEnableClientShare(true);
if (myScreenShotPath!=null)
{
content.SetImagePath(myScreenShotPath);
}
return content;
}
做完上面的部分,我們此時就已經完成了自定義分享界面,可以很方便的進行自己的分享界面的配置。
二、安卓的配置分享
安卓的其他部分都還好,除了需要用戶的KeyStore之外,倒是沒有什麼別的要求了。下邊就來說一說怎麼解決安卓的分享問題。我們需要做下邊三件事情。
- 在Unity中爲應用創建一個KeyStore。
- 在微信/新浪開放平臺完成Android平臺的BundleID填寫。以及必須要有的KeyStore,KeyStore的獲取方法,後邊會說到。
- 申請獲取應用的KeyStore。
創建KeyStore,在相應的位置填寫KeyStore的名稱和密碼就可以了:
微信開放平臺填寫應用簽名:
記得應用簽名一定要是小寫,我寫了大寫發現沒用。。。
應用簽名的獲取方法:
https://github.com/mobileresearch/weibo_android_sdk/blob/master/app_signatures.apk 這是新浪微博提供的應用簽名獲取工具,裝在手機上之後就可以使用,然後根據指示獲取應用簽名,然後填寫到開放平臺就可以了。記得微信和微博都要寫啊。 這裏安卓的一些配置就已經完成了。
三、IOS的配置分享
IOS需要添加一些庫的引用,還有增加白名單等。這裏我貼上圖給大家看:
首先在引用庫中添加如下的一些文件,引用庫目錄是:Build Phases/Link Binary With Libraries 注意現在的Xcode.dylib已經是.tbd文件了.
做完這一步,還需要添加URL Schemes 。在Info/URL Types中添加如下。注意這裏的wb + Appkey,Appkey是你在微博開放平臺上申請的AppKey。
配置過了URLTypes,然後就需要配置應用的白名單,即讓應用允許調用我們的SDK。路徑:Info/Custom IOS Target Properties/LSAppliactionQueriesSchemes然後點擊加號增加。
之後進行打包就可以進行分享啦!
我們的項目用到了,微信,微博分享,並且安卓和IOS都分享成功了。如果你有什麼問題也可以留言。