android微信分享

来源:互联网 发布:pdf文档修改软件 编辑:程序博客网 时间:2024/05/04 15:06

下文只讨论使用友盟分享微信,qq等实现方式,

微信分享主要还是三步,第一,申请appkey,申请的时候需要填写keystore文件中的md5和packagename,注意填写的时候需要将eclipse打包最后一步中的md5中间的冒号去掉,另外,将大写换成小写,最后也就是一个字符串,将这个字符串填写进去才行,

微信开放平台地址:

https://open.weixin.qq.com/

检验是否填写正确可以去微信开放平台下载Gen_Signature_Android.apk,打开这个apk,填写进去你要申请appkey的packagename,获取到md5,如果和你填写的一致,说明填写正确,否则,填写错误。

apk下载地址:

https://open.weixin.qq.com/zh_CN/htmledition/res/dev/download/sdk/Gen_Signature_Android.apk

第二步:等待审核通过,目前只有审核通过的才可以进行分享,审核通过后,会给你一个appid,appsecret,这俩个字段需要在代码中用到。

第三步:编码完成分享,两个思路,第一个可以直接在友盟的官网中下载demo,然后替换appid,appsecret,替换keystore文件,就是将demo中的keystore文件替换系统默认的debug.keystore文件,第二个,可以下载已经写好的示例demo,比如umeng_third_login,然后还是替换appid,appsecret,替换keystore文件。

这里是否分享成功需要正确配置manifest文件,如下

 <!-- 分享内容编辑页 -->        <activity            android:name="com.umeng.socialize.view.ShareActivity"            android:configChanges="orientation|keyboard"            android:launchMode="singleTask"            android:noHistory="true"            android:theme="@style/Theme.UMDialog"            android:windowSoftInputMode="stateVisible|adjustResize" >        </activity>        <!-- 腾讯SSO授权的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="tencent100424468" />            </intent-filter>        </activity>        <activity            android:name="com.tencent.connect.common.AssistActivity"            android:screenOrientation="portrait"            android:theme="@android:style/Theme.Translucent.NoTitleBar" />        <!-- 微信回调activity -->        <activity            android:name=".wxapi.WXEntryActivity"            android:configChanges="keyboardHidden|orientation|screenSize"            android:exported="true"            android:screenOrientation="portrait"            android:theme="@android:style/Theme.Translucent.NoTitleBar" />        <!-- 易信回调activity -->        <activity            android:name=".yxapi.YXEntryActivity"            android:configChanges="keyboardHidden|orientation|screenSize"            android:exported="true"            android:screenOrientation="portrait"            android:theme="@android:style/Theme.Translucent.NoTitleBar" />        <!-- 人人SSO授权所需的OAuthActivity -->        <activity            android:name="com.renn.rennsdk.oauth.OAuthActivity"            android:configChanges="orientation|navigation|keyboardHidden" />        <!-- facebook相关 -->        <activity android:name=".activity.FacebookActivity" >        </activity>        <activity            android:name="com.facebook.LoginActivity"            android:label="@string/app_name"            android:theme="@android:style/Theme.Translucent.NoTitleBar" />

然后在代码中创建包,wxapi目录,新建WXEntryAcivity类,如果想处理分享返回事件,可以写具体代码,如果不想处理,直接写一个空继承也行,比如:

public class WXEntryActivity extends WXCallbackActivity {}

也可以写:

    /** 微信客户端回调activity示例 */      public class WXEntryActivity extends Activity implements IWXAPIEventHandler {          // IWXAPI 是第三方app和微信通信的openapi接口          private IWXAPI api;          @Override          protected void onCreate(Bundle savedInstanceState) {              api = WXAPIFactory.createWXAPI(this, "这里替换第一步申请的APP_ID", false);              api.handleIntent(getIntent(), this);              super.onCreate(savedInstanceState);          }          @Override          public void onReq(BaseReq arg0) { }                @Override          public void onResp(BaseResp resp) {              LogManager.show(TAG, "resp.errCode:" + resp.errCode + ",resp.errStr:"                      + resp.errStr, 1);              switch (resp.errCode) {              case BaseResp.ErrCode.ERR_OK:                  //分享成功                  break;              case BaseResp.ErrCode.ERR_USER_CANCEL:                  //分享取消                  break;              case BaseResp.ErrCode.ERR_AUTH_DENIED:                  //分享拒绝                  break;              }          }      }  
同样,这个类需要在manifest中声明,然后在需要分享的地方直接编写分享代码就可以:

例如:

/** * @功能描述 : 添加微信平台分享 * @return */private void addWXPlatform() {// 注意:在微信授权的时候,必须传递appSecret// wx967daebe835fbeac是你在微信开发平台注册应用的AppID, 这里需要替换成你注册的AppIDString appId = "xxxxx";String appSecret = "xxxxxxxxxxxxxxxxxx";// 添加微信平台UMWXHandler wxHandler = new UMWXHandler(SettingsActivity.this, appId,appSecret);wxHandler.addToSocialSDK();// 支持微信朋友圈UMWXHandler wxCircleHandler = new UMWXHandler(SettingsActivity.this,appId, appSecret);wxCircleHandler.setToCircle(true);wxCircleHandler.addToSocialSDK();}

mController.getConfig().setPlatforms(SHARE_MEDIA.WEIXIN,SHARE_MEDIA.WEIXIN_CIRCLE, SHARE_MEDIA.QQ, SHARE_MEDIA.QZONE, SHARE_MEDIA.SMS);mController.openShare(SettingsActivity.this, false);

这样就打包签名处apk以后,就可以分享微信,朋友圈了。

注意keystore文件,在调试状态下,需要将正确的keystore文件替换debug.keystore文件才行,否则分享不成功,还有manifest文件中权限需要声明正确完整。

如果都填写正确,还是分享不正确,提示errcode_deny的话,请尝试清理微信的缓存和数据,再进行尝试分享,或许就可以分享成功。


以上是微信分享,qq分享类似,稍微比微信分享简单点。


参考链接:

http://www.cnblogs.com/android100/p/Android-qq.html

http://bbs.umeng.com/thread-7768-1-1.html

http://www.360doc.com/content/14/0908/06/9200790_407759192.shtml

http://bbs.umeng.com/forum.php?mod=viewthread&tid=5832&extra=page%3D1%26filter%3Ddigest%26digest%3D1


1 0
原创粉丝点击