zoukankan      html  css  js  c++  java
  • Android分享到微信等社交平台教程

    在Android手机app上增加分享到微信等平台的功能,使用的是第三方的开源组件,友推SDK。



    集成分为下面几个步骤:

    1. 在友推官网注冊,加入要集成友推sdk的 app信息,并获取appkey。

    2.下载最新版的友推sdk包,包里提供了集成demo。

    3.申请社交平台appkey
       包含的社交平台有:微信、新浪微博、腾讯微博、QQ空间、QQ、微信好友、人人等。

    4.引用友推库项目
       将youtui-lib项目库和应用project放在同一个文件夹下

    5.把sdk中的youtui-share-demoproject里的assets下的youtui_sdk.xml复制到你的应用里的assets下。 

    6.改动youtui_sdk.xml

       当中微信和朋友圈,须要到微信开发平台提交你的应用,申请得到key。当中一个比較重要的地方,即应用签名。用微信提供的Gen_Signature_Android.apk。输入你的包名。就能够得到你的应用签名了。具体代码看以下 


    <?xml version="1.0" encoding="utf-8"?>
    <KeyInfo>
      
        <!--
        分享平台的注冊信息,一定要填入在对应平台注冊的正确信息,不然应用无法完毕授权,
    也无法进行分享,enable属性决定是否分享该平台
        -->
        <!-- 友推sdk注冊地址 : http://youtui.mobi/ -->
        <YouTui AppKey="669757" />
        <!-- 微信和朋友圈注冊:https://open.weixin.qq.com/ -->
        <Wechat
            AppId="wx36de4ec7c07c3589"
            Enable="true" />
        <WechatMoments
            AppId="wx36de4ec7c07c3589"
            Enable="true" />
        <!-- 新浪微博注冊地址:http://open.weibo.com/ -->
        <SinaWeibo
            IsNoKeyShare="true"
            AppKey="2502314449"
            AppSecret="df10502d7b422937adea431cd985904a"
            Enable="true"
            RedirectUrl="http://youtui.mobi/weiboResponse" />
        <!-- QQ,QQ空间注冊地址:http://open.qq.com/ -->
        <QQ
            AppId="1101255276"
            AppKey="h4sOXgtTtsqRjoOq"
            Enable="true" />
        <QZone
            AppId="1101255276"
            AppKey="h4sOXgtTtsqRjoOq"
            Enable="true" />
        <!--腾讯微博注冊地址:http://dev.t.qq.com/  -->
        <TencentWeibo
            IsNoKeyShare="true"
            AppKey="801443192"
            AppSecret="45d65f2d2650637c96ece74f4a67b686"
            Enable="true"
            RedirectUrl="http://yt.bidaround.cn/" />
        <!-- 人人注冊地址: http://dev.renren.com/ -->
        <Renren
            AppId="244110"
            AppKey="b1a80ac1aa694090bfb9aa3a590f2161"
            Enable="true"
            SecretKey="506ccdbda36046d197801e79c4ebba23" />
      
        <ShortMessage Enable="true" />
      
        <Email Enable="true" />
           <!-- 复制链接 -->
      
        <CopyLink Enable="true" />
         
        <More Enable="true"/>
      
      
    </KeyInfo>


    7.改动AndroidManifest.xml,加入权限和注冊activity等信息。具体代码看以下 

    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
        <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
        <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
        <uses-permission android:name="android.permission.INTERNET" />
        <uses-permission android:name="android.permission.READ_PHONE_STATE" />
        <uses-permission android:name="android.permission.GET_TASKS" />    
      
        <!-- 缓存资源优先存入SDcard -->
        <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
       
        <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
        <!-- 用于载入图片 -->
        <uses-permission android:name="android.permission.GET_ACCOUNTS" />
        <!-- 用于人人SSO登陆 -->
        <uses-permission android:name="android.permission.USE_CREDENTIALS" />
        <!-- 用于人人SSO登陆 -->
        <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
        <!-- 用于人人SSO登陆 -->
          <!-- youtui -->        
              <!-- 微信分享须要注冊该activity -->
            <activity
                android:name=".wxapi.WXEntryActivity"
                android:exported="true"
                android:launchMode="singleTask"
                android:theme="@android:style/Theme.Translucent"
                >
            </activity>
            <!-- qq回调须要注冊该activity -->
            <activity
                android:name="com.tencent.connect.common.AssistActivity"
                android:configChanges="orientation|keyboardHidden"
                android:screenOrientation="portrait"
                android:theme="@android:style/Theme.Translucent.NoTitleBar" />
            <!-- qq授权须要注冊该activity -->
            <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="tencent1101255276" />
                </intent-filter>
            </activity>
            <!-- 人人授权须要注冊的activity -->
            <activity
                android:name="com.renn.rennsdk.oauth.OAuthActivity"
                android:configChanges="orientation|navigation|keyboardHidden" />
            <!-- 分享界面 -->
            <activity
                android:name="cn.bidaround.ytcore.activity.ShareActivity"
                android:exported="true"
                android:launchMode="singleTop"
                android:theme="@android:style/Theme.Translucent.NoTitleBar" >
                <!-- 新浪微博分享回调须要设置 -->
                <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-->
            <activity
                android:name="cn.bidaround.ytcore.login.AuthActivity"
                android:theme="@android:style/Theme.Translucent.NoTitleBar" />
            <!-- 友推积分activity -->
            <activity
                android:name="cn.bidaround.point.PointActivity" />
             <meta-data
                android:name="YOUTUI_CHANNEL"
                android:value="HIAPK_yt" >
            </meta-data>
            <!-- youtui -->



    8.改动你的应用程序。在你须要加入分享的地方。添加一下代码就可以分享。具体代码看以下 

    try {
    // ShareData使用内容分享类型分享类型
    ShareData whiteViewShareData = new ShareData();
    whiteViewShareData.isAppShare = false;
    whiteViewShareData.setDescription("分享猜车标");
    whiteViewShareData.setTitle("分享猜车标");
    whiteViewShareData.setText("我玩了猜车标,很好玩,你也来玩吧^_^");
    whiteViewShareData.setTarget_url("http://apk.hiapk.com/html/2014/06/2770934.html?module=256&info=HHNmjwdo");
    whiteViewShareData.setImageUrl("http://youtui.oss-cn-hangzhou.aliyuncs.com/AppLogo/ic_launcher.png"); 
    YtTemplate whiteGridTemplate = new YtTemplate(StartActivity.this, YouTuiViewType.WHITE_GRID, true);
    whiteGridTemplate.setShareData(whiteViewShareData);
    YtShareListener whiteViewListener = new YtShareListener() {
    @Override
    public void onSuccess(ErrorInfo error) {
    YtLog.e("----", error.getErrorMessage());      
    }
    @Override
    public void onPreShare() {
    }
    @Override
    public void onError(ErrorInfo error) {
    YtLog.e("----", error.getErrorMessage());      
    }
    @Override
    public void onCancel() {
    }
    };
    /** 加入分享结果监听,假设开发人员不须要处理回调事件则不必设置 */
    whiteGridTemplate.addListener(YtPlatform.PLATFORM_QQ, whiteViewListener);
    whiteGridTemplate.addListener(YtPlatform.PLATFORM_QZONE, whiteViewListener);
    whiteGridTemplate.addListener(YtPlatform.PLATFORM_RENN, whiteViewListener);
    whiteGridTemplate.addListener(YtPlatform.PLATFORM_SINAWEIBO, whiteViewListener);
    whiteGridTemplate.addListener(YtPlatform.PLATFORM_TENCENTWEIBO, whiteViewListener);
    whiteGridTemplate.addListener(YtPlatform.PLATFORM_WECHAT, whiteViewListener);
    whiteGridTemplate.addListener(YtPlatform.PLATFORM_WECHATMOMENTS, whiteViewListener);
    /**
     * 为每一个平台加入分享数据,假设不单独加入,分享的为whiteViewTemplate.setShareData(
     * whiteViewShareData)设置的分享数据
     */
    whiteGridTemplate.addData(YtPlatform.PLATFORM_QQ, whiteViewShareData);
    whiteGridTemplate.addData(YtPlatform.PLATFORM_QZONE, whiteViewShareData);
    whiteGridTemplate.addData(YtPlatform.PLATFORM_RENN, whiteViewShareData);
    whiteGridTemplate.addData(YtPlatform.PLATFORM_SINAWEIBO, whiteViewShareData);
    whiteGridTemplate.addData(YtPlatform.PLATFORM_TENCENTWEIBO, whiteViewShareData);
    whiteGridTemplate.addData(YtPlatform.PLATFORM_WECHAT, whiteViewShareData);
    whiteGridTemplate.addData(YtPlatform.PLATFORM_WECHATMOMENTS, whiteViewShareData);
    whiteGridTemplate.addData(YtPlatform.PLATFORM_MESSAGE, whiteViewShareData);
    whiteGridTemplate.addData(YtPlatform.PLATFORM_EMAIL, whiteViewShareData);
    whiteGridTemplate.addData(YtPlatform.PLATFORM_MORE_SHARE, whiteViewShareData);
      
    whiteGridTemplate.show();
     
     
    } catch (Exception e) {
     e.printStackTrace();
     
    }



    9.当然不要忘记了在你的第一个Activity的onCreate方法里增加:

    YtTemplate.init(this);

    10.应用退出时:

    YtTemplate.release(this);


  • 相关阅读:
    poj 1035 (Spell checker )
    poj 3080 (暴力 strstr)
    kmp 模版
    匈牙利算法模版
    poj 1274 The Perfect Stall (最大匹配)
    hdu 1083 Courses(二分图 )
    pku 3363(内部测试赛)
    Linux 下联网脚本文件
    Qt 多国语言
    引用和引用参数
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/4501423.html
Copyright © 2011-2022 走看看