1. 程式人生 > >mob第三方分享微信、qq、微博

mob第三方分享微信、qq、微博

1、導包

2、之後修改mainfest

<!-- Mob 分享SDK  start -->
<activity
    android:name="com.mob.tools.MobUIShell"
    android:configChanges="keyboardHidden|orientation|screenSize"
    android:theme="@android:style/Theme.Translucent.NoTitleBar"
    android:windowSoftInputMode="stateHidden|adjustResize"
> <intent-filter> <data android:scheme="" /> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.BROWSABLE" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter>
<!-- 呼叫新浪原生SDK,需要註冊的回撥activity --> <intent-filter> <action android:name="com.sina.weibo.sdk.action.ACTION_SDK_REQ_ACTIVITY" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity> <!-- 微信分享回撥 -->
<activity android:name=".wxapi.WXEntryActivity" android:configChanges="keyboardHidden|orientation|screenSize" android:exported="true" android:screenOrientation="portrait" android:theme="@android:style/Theme.Translucent.NoTitleBar" /> <meta-data android:name="Mob-AppKey" android:value="" /> <meta-data android:name="Mob-AppSecret" android:value="" /> <!-- Mob 分享SDK end -->

3、ShareSDK

   <!-- 
       Wechat微信和WechatMoments微信朋友圈的appid是一樣的;
   
       注意:開發者不能用我們這兩個平臺的appid,否則分享不了
       微信測試的時候,微信測試需要先簽名打包出apk,
   sample測試微信,要先簽名打包,keystoresample專案中,密碼123456

   BypassApproval是繞過稽核的標記,設定為trueAppId將被忽略,故不經過
   稽核的應用也可以執行分享,但是僅限於分享文字和圖片,不能分享其他型別,
   預設值為false。此外,微信收藏不支援此欄位。wx4868b35061f87885
-->
<!--要分享微信小應用程式時用userName,path-->
   <Wechat
       Id="4"
       SortId="4"
       AppId=""
       AppSecret=""
   UserName=""
   Path="pages/index/index.html?id=1"
   BypassApproval="false"
   WithShareTicket = "true"
   MiniprogramType = "0"
       Enable="true" />

4、wxapi中的WXEntryActivity

/** 微信客戶端回撥activity示例 */
public class WXEntryActivity extends WechatHandlerActivity {

   /**
    * 處理微信發出的向第三方應用請求app message
    * <p>
    * 在微信客戶端中的聊天頁面有新增工具,可以將本應用的圖示新增到其中
    * 此後點選圖示,下面的程式碼會被執行。Demo僅僅只是開啟自己而已,但你可
    * 做點其他的事情,包括根本不開啟任何頁面
    */
   public void onGetMessageFromWXReq(WXMediaMessage msg) {
      if (msg != null) {
         Intent iLaunchMyself = getPackageManager().getLaunchIntentForPackage(getPackageName());
         startActivity(iLaunchMyself);
      }
   }

   /**
    * 處理微信向第三方應用發起的訊息
    * <p>
    * 此處用來接收從微信傳送過來的訊息,比方說本demowechatpage裡面分享
    * 應用時可以不分享應用檔案,而分享一段應用的自定義資訊。接受方的微信
    * 客戶端會通過這個方法,將這個資訊傳送回接收方手機上的本demo中,當作
    * 回撥。
    * <p>
    * Demo只是將資訊展示出來,但你可做點其他的事情,而不僅僅只是Toast
    */
   public void onShowMessageFromWXReq(WXMediaMessage msg) {
      if (msg != null && msg.mediaObject != null
            && (msg.mediaObject instanceof WXAppExtendObject)) {
         WXAppExtendObject obj = (WXAppExtendObject) msg.mediaObject;
         Toast.makeText(this, obj.extInfo, Toast.LENGTH_SHORT).show();
      }
   }

}

5、底部彈出框

/**
 * 顯示底部分享彈出框
 */
private void showBottomDialog() {

    new BottomDialog(this)
            .title(R.string.share_to) //設定標題
            .layout(BottomDialog.LINEAR) //設定內容layout,預設為線性(LinearLayout)
            .orientation(BottomDialog.HORIZONTAL)     //設定滑動方向,預設為橫向
            .inflateMenu(R.menu.menu_share, new OnItemClickListener() { //傳入選單內容
                @Override
                public void click(Item item) {
                    if (!Util.isNetworkConnected(DiscernActivity.this)) {
                        showShortToast(getString(R.string.no_network));
                        return;
                    }
                    if (getString(R.string.menu_wechat).equals(item.getTitle())) {  //微信
                        shareToWX();
                    } else if (getString(R.string.menu_moments).equals(item.getTitle())) {  //朋友圈
                        shareToWXPYQ();
                    } else if (getString(R.string.menu_qq).equals(item.getTitle())) {  //QQ
                        shareToQQ();
                    } else if (getString(R.string.menu_weibo).equals(item.getTitle())) {  //微博
                        shareToWB();
                    }
                }
            })
            .show();
}

6、分享到微信

/**
 * 分享到微信
 */
private void shareToWX() {
    showShortToast("正在進入微信分享,請稍等");
    Platform.ShareParams sp = new Platform.ShareParams();

    sp.setTitle("");
    sp.setText("");
    sp.setImageUrl("");
    sp.setUrl("https://www.daodianwang.com");
    sp.setShareType(Platform.SHARE_WEBPAGE);
    Platform pf = ShareSDK.getPlatform(Wechat.NAME);
    pf.setPlatformActionListener(new PlatformActionListener() {
        @Override
        public void onComplete(Platform platform, int i, HashMap<String, Object> hashMap) {
            showShortToast("分享到微信成功");
        }

        @Override
        public void onError(Platform platform, int i, Throwable throwable) {

        }

        @Override
        public void onCancel(Platform platform, int i) {

        }
    });
    if (!pf.isClientValid()) {
        showShortToast("微信未安裝,請先安裝微信");
        return;
    }
    pf.share(sp);
}