溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android社會化分享的實現(xiàn)方法

發(fā)布時間:2020-07-16 05:54:49 來源:網(wǎng)絡 閱讀:453 作者:麥佳佳 欄目:移動開發(fā)


眾所周知,互聯(lián)網(wǎng)是一個資源共享的地方,在網(wǎng)絡上,我們可以分享我們所有認為好的資源。而隨著互聯(lián)網(wǎng)信息爆發(fā)式的增長,我們習慣了一鍵分享功能,比如:微博分享、微信分享、QQ空間分享、人人網(wǎng)分享等等。由此可見分享是很重要的一個客戶體驗功能,那在移動端,我們怎樣實現(xiàn)分享功能呢?

Android系統(tǒng)的社會分享功能來看,實現(xiàn)手段主要有兩種:一種是通過系統(tǒng)自帶的來啟動分享功能;第二種是通過第三方的SDK插件進行分享;具體實現(xiàn)方式如下。

 

一、Android系統(tǒng)啟動分享功能

系統(tǒng)啟動分享功能很簡單,實現(xiàn)也很容易,下面通過一個demo為大家展示一下:

1、還是先看一個布局文件,布局文件很簡單,僅僅一個button按鈕來觸發(fā)分享功能即可:

 

<RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"

 xmlns:tools="http://schemas.android.com/tools"

  android:layout_width="match_parent"

 android:layout_height="match_parent"

  tools:context=".MainActivity">

  <Button

    android:id="@+id/btn_share"

   android:text="@string/hello_world"

   android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:padding="10dp"/>

  </RelativeLayout>

 

2、直接看實現(xiàn)的代碼:

 

public classMainActivity extends ActionBarActivity {

private Buttonbtn_share;

@Override

protected voidonCreate(Bundle savedInstanceState) {

  super.onCreate(savedInstanceState);

  setContentView(R.layout.activity_main);

  btn_share = (Button)findViewById(R.id.btn_share);

  btn_share.setOnClickListener(newView.OnClickListener() {

    @Override

    public void onClick(View v) {

      shareBySystem();

    }

  });

}

/**

 * 通過系統(tǒng)的組件進行分享

 */

private voidshareBySystem(){

  Intent intent = newIntent(Intent.ACTION_SEND);

  intent.setType("p_w_picpath/*");

 intent.putExtra(Intent.EXTRA_SUBJECT,"Share");

  //設置分享的內(nèi)容

  intent.putExtra(Intent.EXTRA_TEXT, "Ihave successfully)");

 intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

  startActivity(Intent.createChooser(intent,getTitle()));

}

 

僅僅通過系統(tǒng)的Intent組件來指定我們分享的內(nèi)容即可,效果圖如下:

Android社會化分享的實現(xiàn)方法

 

 

從圖片中,可以看出分享功能已經(jīng)實現(xiàn),但是問題來了,這種方式實現(xiàn)的分享功能卻沒有大家常用的QQ、新浪微博、豆瓣等!這就是這種分享功能實現(xiàn)的局限性,雖然實現(xiàn)簡單,但是不一定能達到我們的特殊需求。為解決這個問題,我們就需要用到,第三方的SDK插件了。

 

二、第三方組件ShareSDK的使用

      要分享東西到騰訊、新浪這些主流社交平臺時,沒有他們提供的SDK支持是不可能實現(xiàn)的,那么問題又來了,如果要分享到十幾種平臺豈不是需要十幾種SDK插件?其實我們可以直接用ShareSDK的解決,下面就一起來看看他的具體實現(xiàn)步驟吧。

1、在 mob官網(wǎng)注冊一個開發(fā)者賬號,然后填寫相關的認證信息即可。

2、下載官方提供的SDK

3、進入ShareSDK解壓目錄,打開“Share SDK for Android”目錄,可以找到“QuickIntegrater.jar”,這個就是快速集成ShareSDK的工具,我們雙擊該工具,選擇我們要分享的平臺,填寫好事例名稱和包名,點擊【確定】,然后系統(tǒng)自動給我們生成一個我們需要的demo,如下圖:

Android社會化分享的實現(xiàn)方法

4、我們賦值文件夾下的對應文件,拷貝到我們工程目錄即可。

Android社會化分享的實現(xiàn)方法

 

5、至此,所有需要的文件都已經(jīng)拷貝到我們工程中,我們接下來就是修改Manifest文件的配置。

1)添加權限

<uses-permissionandroid:name="android.permission.GET_TASKS" />

    <uses-permissionandroid:name="android.permission.INTERNET" />

    <uses-permissionandroid:name="android.permission.ACCESS_WIFI_STATE" />

    <uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE" />

    <uses-permissionandroid:name="android.permission.CHANGE_WIFI_STATE" />

    <uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE" />

    <uses-permissionandroid:name="android.permission.READ_PHONE_STATE" />

    <uses-permissionandroid:name="android.permission.MANAGE_ACCOUNTS"/>

    <uses-permissionandroid:name="android.permission.GET_ACCOUNTS"/>

    <!-- 藍牙分享所需的權限 -->

    <uses-permissionandroid:name="android.permission.BLUETOOTH" />

    <uses-permissionandroid:name="android.permission.BLUETOOTH_ADMIN" />

2)配置我們分享的主流平臺的Activity文件,例如:

<!-- QQ客戶端回調(diào) -->

        <activity

 android:name="cn.sharesdk.tencent.qq.ResultReceiver"

  android:launchMode="singleTask"

  android:noHistory="true">

  <!--

      如果集成QQ分享,或者使用QQ客戶端來進行QQ空間的分享,須要在此處添加一個對ACTION_VIEW

      事件的過濾器,其中的scheme是“tencent”前綴再開發(fā)者應用的加上appId。如果此過濾器不設置,

      則分享結束以后不能得到正確的回調(diào)

  -->

  <intent-filter android:priority="1000">

      <dataandroid:scheme="tencent100371282" />

      <actionandroid:name="android.intent.action.VIEW" />

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

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

  </intent-filter>

        </activity>

        <!-- 微信分享回調(diào) -->

        <activity

 android:name=".wxapi.WXEntryActivity"

 android:theme="@android:style/Theme.Translucent.NoTitleBar"

 android:configChanges="keyboardHidden|orientation|screenSize"

  android:exported="true" />

        <!-- 易信分享回調(diào) -->

        <activity

 android:name=".yxapi.YXEntryActivity"

 android:theme="@android:style/Theme.Translucent.NoTitleBar"

 android:configChanges="keyboardHidden|orientation|screenSize"

  android:excludeFromRecents="true"

  android:exported="true"

  android:launchMode="singleTop"/>       

        <!-- 支付寶分享回調(diào) -->

        <activity

 android:name=".apshare.ShareEntryActivity"

 android:theme="@android:style/Theme.Translucent.NoTitleBar"

 android:configChanges="keyboardHidden|orientation|screenSize"

  android:exported="true"/>

        <!-- 調(diào)用新浪原生SDK,需要注冊的activity-->

        <activity

 android:name="com.sina.weibo.sdk.component.WeiboSdkBrowser"

 android:configChanges="keyboardHidden|orientation"

 android:windowSoftInputMode="adjustResize"

  android:exported="false" >

        </activity>

        <!-- 調(diào)用新浪原生SDK,需要注冊的回調(diào)activity-->

        <activity

 android:name="cn.sharesdk.sina.weibo.SinaActivity"

  android:theme="@android:style/Theme.Translucent.NoTitleBar">

  <intent-filter>

      <actionandroid:name="com.sina.weibo.sdk.action.ACTION_SDK_REQ_ACTIVITY"/>

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

  </intent-filter>

        </activity>

 

6、使用第三方的SDK,他們都會要求我們提供應用的App_key進行識別,所以ShareSDK也不例外,在做第4步時,我們需要將assets文件夾下的一個xml文件進行拷貝,這個文件里面包含了我們分享的各個平臺的App_key信息,例如:

Android社會化分享的實現(xiàn)方法

 

7、至此,所有配置基本完成,我們只需要在代碼中調(diào)用分享功能即可。

private voidshowShare() {

 ShareSDK.initSDK(this);

 OnekeyShare oks = new OnekeyShare();

 //關閉sso授權

 oks.disableSSOWhenAuthorize();

 

// 分享時Notification的圖標和文字  2.5.9以后的版本不調(diào)用此方法

 //oks.setNotification(R.drawable.ic_launcher,getString(R.string.app_name));

 // title標題,印象筆記、郵箱、信息、微信、人人網(wǎng)和QQ空間使用

 oks.setTitle(getString(R.string.share));

 // titleUrl是標題的網(wǎng)絡鏈接,僅在人人網(wǎng)和QQ空間使用

 oks.setTitleUrl("http://sharesdk.cn");

 // text是分享文本,所有平臺都需要這個字段

 oks.setText("我是分享文本");

 // p_w_picpathPath是圖片的本地路徑,Linked-In以外的平臺都支持此參數(shù)

 oks.setImagePath("/sdcard/test.jpg");//確保SDcard下面存在此張圖片

 // url僅在微信(包括好友和朋友圈)中使用

 oks.setUrl("http://sharesdk.cn");

 // comment是我對這條分享的評論,僅在人人網(wǎng)和QQ空間使用

 oks.setComment("我是測試評論文本");

 // site是分享此內(nèi)容的網(wǎng)站名稱,僅在QQ空間使用

 oks.setSite(getString(R.string.app_name));

 // siteUrl是分享此內(nèi)容的網(wǎng)站地址,僅在QQ空間使用

 oks.setSiteUrl("http://sharesdk.cn");

 

// 啟動分享GUI

 oks.show(this);

 }

 

然后我們在ButtononClick事件中進行響應即可。

 

btn_share.setOnClickListener(newOnClickListener() {

 

            @Override

            public void onClick(View v) {

                showShare();

            }

        });

至此,使用ShareSDK的快速集成已經(jīng)完成了。但值得注意的是,ShareSDK僅僅是一個將個平臺的分享集成的一個工具,我們還是要去各個社交平臺去注冊賬戶,然后注冊應用信息,才能獲取對應的App_key進行使用。效果如下:

Android社會化分享的實現(xiàn)方法

 

以上就是Android社會化分享最基本功能的簡單介紹,當然Android分享還有很多高級的功能,在以后的分享中小編將為大家一一介紹。同時,也希望通過本文的分享,對Android初學者這塊功能的學習、使用有所幫助。

 


向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI