1. 程式人生 > >友盟分享(第三方)

友盟分享(第三方)

友盟專案的包名必須是 com.umeng.soexample

Umeng不要用自動整合
建議用手動整合
第一步下載官方的demo
在這裡插入圖片描述
在這裡插入圖片描述
下載SDK
在這裡插入圖片描述

可以選擇要分享app
比如說就微信和QQ(完整版)
點開開發文件

在這裡插入圖片描述

點開手動整合步驟

在這裡插入圖片描述

下載的SDK中的所有jar包和佈局檔案中的資源layout和圖片全部匯入自己的demo
有微信的話
在包名目錄下建立wxapi資料夾,新建一個名為WXEntryActivity的activity繼承WXCallbackActivity。在這裡插入圖片描述
有支付寶的話
與微信相似,支付寶需要在包名目錄下建立apshare資料夾,然後建立一個ShareEntryActivity的類,繼承ShareCallbackActivity。
有釘釘的話
與微信相似,釘釘需要在包名目錄下建立ddshare資料夾,然後建立一個DDShareActivity的類,DingCallBack。
QQ與新浪
QQ與新浪不需要新增Activity,但需要在使用QQ分享或者授權的Activity中,新增:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data);
}

配置清單檔案
例子(微信)
在這裡插入圖片描述
詳情見開發者中心
https://developer.umeng.com/docs/66632/detail/66639#h3--sdk


qq(請注意將我們的qq appkey替換成您自己的qq appkey)
< activity
android:name=“com.tencent.tauth.AuthActivity”
android:launchMode=“singleTask”
android:noHistory=“true” >
< intent-filter>
< action android:name=“android.intent.action.VIEW” />

    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />

    <data android:scheme="tencent100424468" />
    </intent-filter>
    </activity>
    <activity
    android:name="com.tencent.connect.common.AssistActivity"
    android:theme="@android:style/Theme.Translucent.NoTitleBar"
    android:configChanges="orientation|keyboardHidden|screenSize"/>

新增許可權
在這裡插入圖片描述
如果需要用到QQ 需要
在這裡插入圖片描述

初始化設定
第二個箭頭指的是開啟log日誌
在這裡插入圖片描述
接下來需要設定各個平臺的appkey:

	//微信
    PlatformConfig.setWeixin("wxdc1e388c3822c80b", "3baf1193c85774b3fd9d18447d76cab0");
    //豆瓣RENREN平臺目前只能在伺服器端配置
    PlatformConfig.setSinaWeibo("3921700954", "04b48b094faeb16683c32669824ebdad","http://sns.whalecloud.com");
    PlatformConfig.setYixin("yxc0614e80c9304c11b0391514d09f13bf");
     //QQ
    PlatformConfig.setQQZone("100424468", "c7394704798a158208a74ab60104f0ba");
    PlatformConfig.setTwitter("3aIN7fuF685MuZ7jtXkQxalyi", "MK6FEYG63eWcpDFgRYw4w9puJhzDl0tyuqWjZ3M7XJuuG7mMbO");
    PlatformConfig.setAlipay("2015111700822536");
    PlatformConfig.setLaiwang("laiwangd497e70d4", "d497e70d4c3e4efeab1381476bac4c5e");
    PlatformConfig.setPinterest("1439206");
    PlatformConfig.setKakao("e4f60e065048eb031e235c806b31c70f");
    PlatformConfig.setDing("dingoalmlnohc0wggfedpk");
    PlatformConfig.setVKontakte("5764965","5My6SNliAaLxEm3Lyd9J");
    PlatformConfig.setDropbox("oz8v5apet3arcdy","h7p2pjbzkkxt02a");
    PlatformConfig.setYnote("9c82bf470cba7bd2f1819b0ee26f86c6ce670e9b");

簽名配置
在下載的demo中app資料夾下面有一個debug.keystore
將資料夾中的簽名檔案(debug.keystore)放入到工程中在這裡插入圖片描述

然後增加簽名檔案的密碼:
signingConfigs {
debug {
storeFile file(‘debug.keystore’)
storePassword “android”
keyAlias “androiddebugkey”
keyPassword “android”
}
}
然後在buildTypes中將這個signingConfigs配置進去,如下圖所示:
在這裡插入圖片描述
buildTypes {

release {
    minifyEnabled false
    proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
debug {
    minifyEnabled false
    signingConfig signingConfigs.debug
    proguardFiles 'proguard-rules.pro'
}

}
別忘了在清單檔案中初始化Application在這裡插入圖片描述
例子:
在佈局檔案中建立一個按鈕

在這裡插入圖片描述
找到控制元件
在這裡插入圖片描述
設定監聽並且實現點選介面和UMShareListener介面
在這裡插入圖片描述

在點選事件的重寫方法中
分享面板的分享
在這裡插入圖片描述

第一個箭頭是要分享的一個自定義圖片
第二個箭頭是要分享的文字
第三個箭頭是設定分享面板裡面要分享的APP
(下載的SDK有幾個APP分享就弄幾個)
第四個箭頭則是實現的這個介面
之後開啟行可以了
在UMshareListener事件的重寫方法中

在這裡插入圖片描述

第一個是分享開始的回撥
第二個是分享成功的回撥
第三個是分享失敗的回撥
第四個是分享取消的回撥
比如微信我在第二個重寫方法(分享成功)裡面加了一個吐司
如果在模擬器上可以看到這個吐司的話 必須分享之後選擇不留在微信上才可以看到
——————————————————————————————————————————
分享(帶面板)
開啟分享面板的程式碼如下:

new ShareAction(MainActivity.this).withText(“hello”) .setDisplayList(SHARE_MEDIA.SINA,SHARE_MEDIA.QQ,SHARE_MEDIA.WEIXIN)
.setCallback(umShareListener).open();

其中umShareListener為回撥監聽,構建如下:
private UMShareListener shareListener = new UMShareListener() {

    /**
     * @descrption 分享開始的回撥
     * @param platform 平臺型別
     */
    @Override
    public void onStart(SHARE_MEDIA platform) {

    }

    /**
     * @descrption 分享成功的回撥
     * @param platform 平臺型別
     */
    @Override
    public void onResult(SHARE_MEDIA platform) {
        Toast.makeText(ShareDetailActivity.this,"成功                                        了",Toast.LENGTH_LONG).show();
    }

    /**
     * @descrption 分享失敗的回撥
     * @param platform 平臺型別
     * @param t 錯誤原因
     */
    @Override
    public void onError(SHARE_MEDIA platform, Throwable t) {
        Toast.makeText(ShareDetailActivity.this,"失                                            敗"+t.getMessage(),Toast.LENGTH_LONG).show();
    }

    /**
     * @descrption 分享取消的回撥
     * @param platform 平臺型別
     */
    @Override
    public void onCancel(SHARE_MEDIA platform) {
        Toast.makeText(ShareDetailActivity.this,"取消                                          了",Toast.LENGTH_LONG).show();

    }
};

分享
UMImage image = new UMImage(MainActivity.this, R.drawable.a);//資原始檔

            image.compressStyle = UMImage.CompressStyle.SCALE;//大小壓縮,預設為大小壓縮,適合普通很大的圖
            image.compressStyle = UMImage.CompressStyle.QUALITY;//質量壓縮,適合長圖的分享
            //壓縮格式設定
            image.compressFormat = Bitmap.CompressFormat.PNG;//使用者分享透明背景的圖片可以設定這種方式,但是qq好友,微信朋友圈,不支援透明背景圖片,會變成黑色

            new ShareAction(MainActivity.this).withText("hello").withMedia(image).setDisplayList(SHARE_MEDIA.QQ,SHARE_MEDIA.WEIXIN)
                    .setCallback(this).open();