1. 程式人生 > >ShareSDK QQ分享遇到的問題記錄

ShareSDK QQ分享遇到的問題記錄

1、QQ分享出現了只顯示分享圖片,沒有顯示分享資訊的問題。大多是因為ShareSDK.xml檔案設定問題。mob平臺解釋說:BypassApproval是繞過稽核的標記,設定為true後AppId將被忽略,不經過稽核的應用也可以執行分享,但是僅限於分享文字和圖片,不能分享連結,BypassApproval="false"不繞過稽核分享可以分享網頁形式的帶連線、標題、文字顯示分享應用來源、應用圖示。

一般來說,我們的應用大多通過騰訊稽核的,因而除非特殊情況,此處設為false.
2、設定上一步後,如果之前BypassApproval設為true的部分同學會出現QQ分享成功但回撥失敗的問題。原因在於ShareSDK 3.1.0之後版本,QQ分享在AndroidManifest設定變化。
舊版本是
<activity
android:name="com.mob.tools.MobUIShell"
android:configChanges="keyboardHidden|orientation|screenSize"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:windowSoftInputMode="stateHidden|adjustResize">

    <!--
    如果整合QQ分享,或者使用QQ客戶端來進行QQ空間的
    分享,須要在此處新增一個對ACTION_VIEW事件的過濾器,
其中的scheme是“tencent”字首再開發者應用的加上appId。 如果此過濾器不設定,則分享結束以後不能得到正確的回撥 --> <intent-filter> <data android:scheme="tencent+appId" /> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.BROWSABLE" /> <category
android:name="android.intent.category.DEFAULT" /> </intent-filter>
</activity>

新版本是
<activityandroid:name="cn.sharesdk.tencent.qq.ReceiveActivity"
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="tencent+appId" />
    </intent-filter>
</activity>
這兩點一致,如果問題還沒有解決,可以參考下引數配置:
    /**
     * 分享
     * context 
     * title 分享標題
     * content分享文字
     * imageUrl 分享圖片
     * url 分享連結
     */
public static void onShare(Context context, String title, String content, String imageUrl,String url) {
        OnekeyShare oks = new OnekeyShare();
        // 分享回撥
oks.setCallback(new PlatformActionListenerImpl());
        //關閉sso授權
oks.disableSSOWhenAuthorize();
        // title標題,印象筆記、郵箱、資訊、微信、人人網和QQ空間使用
oks.setTitle(title);
    
        // titleUrl是標題的網路連結,僅在人人網和QQ空間使用
oks.setTitleUrl(url);
        // text是分享文字,所有平臺都需要這個欄位oks.setText(content);
        // 分享內容的連線
oks.setUrl(url);
        // 微信、易信分享內容
        // 微信圖片,微信朋友圈必須oks.setImageUrl(imageUrl);
        // 啟動分享GUI
oks.show(context);
    }