qq空间分享 怎么vue.js input动态赋值值summary的值

&&&&&&&&&& 对于分享这一块我也是研究了很久,本来打算用第3方的来做的。最后还是坚持下来了,决定直接用官方的。
&&&&&&&&&& 首先给大家推荐一下一个第三方做分享的,现在这个第三方确实很不错,有时候我都想放弃官方的用他的来做。因为当时做官方的很恼火。

&&&&&&&&Share SDK,它是为iOS、Android、WP8的APP提供社会化功能的一个组件,目前支持如QQ、微信、新浪微博、腾讯微博、开心网、人人网、豆瓣、网易微博、搜狐微博、facebook、twitter、google+等国内外主流社交平台。
&&&&&&好的现在废话不多说了开始做我们的官方DEMO了。
&&&& 当然,如果你要做分享首先需要的是去各大开放平台注册帐号然后申请。
&&&&&QQ开发平台:;
&&&& 微信开发平台:https://open./
&&&& 新浪微博开发平台:/
&&&& 下载最新的SDK。或者直接下载他们的DEMO可以先看一下。
&&&&&然后就是在各大平台创建自己的应用。
&&&&&&&&&&
&&&&&&&&&&& 这里值得注意的是:当你用eclipse的MD5值的时候,记得把MD5值的冒号全部去掉,然后把所有大写字符变成小写字母来做签名。
&&&&&&&&&&&&首先我先说微信的分享,微信现在因为微信版本高了之后他支持的分享内容比较多,我这里就主要介绍2种就是文字和图片。
&&&&&&&&&&& 我们首先在微信开放平台申请自己的应用拿到APPID,然后下载他最新的SDK,放到自己项目的libs文件夹里面。
&&&&&&&&&&& 微信的SDK全名是:libammsdk.jar。mta-sdk-1.6.2.jar
&&&&&&&&&&& 微信准备工作已经做好了,我们现在开始写代码。
&&&&&&&&&&& 布局文件:名字自己随便取,然后在里面添加2个butto控件,并且添加ID。
&&&&&&&&&&
&LinearLayout xmlns:android=&&a target=_blank href=&/apk/res/android&&/apk/res/android&/a&&
    xmlns:tools=&&a target=_blank href=&/tools&&/tools&/a&&
    android:layout_width=&match_parent&
    android:layout_height=&match_parent&
    tools:context=&.MainActivity&
    android:orientation=&vertical&
     &   &Button
        android:id=&@+id/wxh&
        android:layout_width=&match_parent&
        android:layout_height=&wrap_content&
        android:text=&微信好友&
       
       
        /&
      &Button
        android:id=&@+id/wxp&
        android:layout_width=&match_parent&
        android:layout_height=&wrap_content&
        android:text=&微信朋友圈&
        /&&/LinearLayout&
然后是代码的部分:
package com.zeo.
import com.tencent.mm.sdk.modelmsg.SendMessageToWX;
import com.tencent.mm.sdk.modelmsg.WXMediaM
import com.tencent.mm.sdk.modelmsg.WXWebpageO
import com.tencent.mm.sdk.openapi.IWXAPI;
import com.tencent.mm.sdk.openapi.WXAPIF
import android.os.B
import android.app.A
import android.graphics.B
import android.graphics.BitmapF
import android.view.M
import android.view.V
import android.view.View.OnClickL
import android.widget.B
public class MainActivity extends Activity implements OnClickListener{
//IWXAPI 是第三方(也就是你的)app和微信通信的openapi接口
private IWXAPI wxA
static final String WXAPP_ID=&wx30aeae&;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();//控件的初始化
wXfenxiang();//向微信注册
* 初始化控件
private void init() {
wxh = (Button)findViewById(R.id.wxh);
wxp = (Button)findViewById(R.id.wxp);
wxh.setOnClickListener(this);
wxp.setOnClickListener(this);
* 注册到微信
private void
wXfenxiang(){
//这里是获取IWXAPI实列
wxApi = WXAPIFactory.createWXAPI(this, WXAPP_ID);
//这里就是将应用的APPID注册到微信
wxApi.registerApp(WXAPP_ID);
public void onClick(View v) {
switch (v.getId()) {
case R.id.wxh:
weiXinFx(0);//这里要实现的是微信好友的分享
case R.id.wxp:
weiXinFx(1);//这里要实现的是微信朋友圈的分享
* 微信分享
* @param flag
flag=0 分享到微信好友 ; flag=1
分享到微信朋友圈
private void weiXinFx(int flag){
WXWebpageObject webpage = new WXWebpageObject();
webpage.webpageUrl = &&;
WXMediaMessage msg = new WXMediaMessage(webpage);
msg.title = &这里填写标题&;
msg.description = &这里填写内容&;
//这里替换一张自己工程里的图片资源
Bitmap thumb = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
msg.setThumbImage(thumb);
SendMessageToWX.Req req = new SendMessageToWX.Req();
req.transaction = String.valueOf(System.currentTimeMillis());
req.message =
/**需要注意的是,SendMessageToWX.Req的scene成员,如果scene填WXSceneSession,那么消息会发送至微信的会话内.如果scene填WXSceneTimeline(微信4.2以上支持,如果需要检查微信版本支持API的情况, 可调用IWXAPI的getWXApupportAPI方法,0x及以上支持发送朋友圈),那么消息会发送至朋友圈。scene默认值为WXSceneSession。*/
req.scene = flag==0?SendMessageToWX.Req.WXSceneSession:SendMessageToWX.Req.WXSceneT
wxApi.sendReq(req);
&&&&&& 这里要说明的是,我们看官方文档可以看到微信分享有2种方式 sendReq 和 sendResp。他们的不同就是:
&&&&&&&&&&&&&& sendReq是第三方app主动发送消息给微信,发送完成之后会切回到第三方app界面。
&&&&&&&&&&&&&& sendResp是微信向第三方app请求数据,第三方app回应数据之后会切回到微信界面。
&&&&&& 最后需要做的是:然后建立官方声明的回调类
&&&&&& 在你的包名相应目录下新建一个wxapi目录,并在该wxapi目录下新增一个WXEntryActivity类,该类继承自Activity。
&&&&& 然后添加权限和配置该类
&&&&uses-permission android:name=&android.permission.INTERNET&/&
&&&&&&& &!-- 微信回调需要的配置 --&
&&&&&&& &activity
&&&&&&&&&&& android:name=&.wxapi.WXEntryActivity&
&&&&&&&&&&& android:exported=&true&
&&&&&&&&&&& android:screenOrientation=&portrait&
&&&&&&&&&&& android:theme=&@android:style/Theme.Translucent.NoTitleBar& /&
&&&&&&& 微信到这里就结束了。当然如果你觉得发送的图片不是你想要的你可以用网上的图片或者是相机拍摄的又或者是你本地的相册。总之这些的话,你自己要加方法来实现。
&&&&&& 接下来我们做QQ的分享 。也是分为2个 一个是QQ好友 一个是QQ空间。
&&&& 我们在上面这个项目里面添加。首先下载资源包
&&&& 分别是:open_sdk_r5043.jar&&&&&&&&
&&&& 首先还是在布局文件里面添加2个BUTTON(注意这里不是新建,仅仅是添加2个新的button);
&&&& 然后写代码:
&&&& 在原有的基础上添加代码,并且在配置文件添加& &!-- QQ分享 --&
&&&&&&& &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& /&
& &!-- 这里的tencent 不要忘记把数字换成自己申请的APPID --&
&&&&&&&&&&&&&&& &data android:scheme=&tencent& /&
&&&&&&&&&&& &/intent-filter&
&&&&&&& &/activity&
&&&&&&& &activity
&&&&&&&&&&& android:name=&com.mon.AssistActivity&
&&&&&&&&&&& android:configChanges=&orientation|keyboardHidden|screenSize&
&&&&&&&&&&& android:theme=&@android:style/Theme.Translucent.NoTitleBar& /&
需要添加的代码有:
&& 在onCreate里面 添加qQfenxiang();方法名
& 然后写出此方法:
* QQTencet的实例
private void qQfenxiang() {
// Tencent类是SDK的主要实现类,开发者可通过Tencent类访问腾讯开放的OpenAPI。
// 其中APP_ID是分配给第三方应用的appid,类型为String。
mTencent = Tencent.createInstance(&&, this.getApplicationContext());
// 1.4版本:此处需新增参数,传入应用程序的全局context,可通过activity的getApplicationContext方法获取
然后在onClick(View v)里面的switch里面增加2个判断:
case R.id.qqh:
qqhy();//这里要实现的是微信朋友圈的分享
case R.id.qqp:
qqkj();//这里要实现的是微信朋友圈的分享
然后写出相应的2个方法:
private void qqkj() {
//Tencent mTencent = Tencent.createInstance(&&, getActivity().getApplicationContext());
// 1.4版本:此处需新增参数,传入应用程序的全局context,可通过activity的getApplicationContext方法获取
// 初始化视图
Bundle params = new Bundle();
ArrayList&String& list = new ArrayList&String&();
list.add(&/pictures/427/932/427932.jpg&);
params.putInt(QzoneShare.SHARE_TO_QZONE_KEY_TYPE,QzoneShare.SHARE_TO_QZONE_TYPE_IMAGE_TEXT);
params.putString(QzoneShare.SHARE_TO_QQ_TITLE, &船渡科技&);//必填
params.putString(QzoneShare.SHARE_TO_QQ_SUMMARY, &船渡科技,纵横天下&);//选填
params.putString(QzoneShare.SHARE_TO_QQ_TARGET_URL, &&);//必填
params.putStringArrayList(QzoneShare.SHARE_TO_QQ_IMAGE_URL, list);
mTencent.shareToQzone(this, params, new BaseUiListener());
private void qqhy() {
// Tencent类是SDK的主要实现类,开发者可通过Tencent类访问腾讯开放的OpenAPI。
// 其中APP_ID是分配给第三方应用的appid,类型为String。
//Tencent mTencent = Tencent.createInstance(&&, this.getApplicationContext());
// 1.4版本:此处需新增参数,传入应用程序的全局context,可通过activity的getApplicationContext方法获取
// 初始化视图
Bundle params = new Bundle();
params.putInt(QQShare.SHARE_TO_QQ_KEY_TYPE, QQShare.SHARE_TO_QQ_TYPE_DEFAULT);
params.putString(QQShare.SHARE_TO_QQ_TITLE, &船渡科技&);
params.putString(QQShare.SHARE_TO_QQ_SUMMARY,
&船渡科技,纵横天下&);
params.putString(QQShare.SHARE_TO_QQ_TARGET_URL,
params.putString(QQShare.SHARE_TO_QQ_IMAGE_URL,&/pictures/427/932/427932.jpg&);
mTencent.shareToQQ(this, params, new BaseUiListener());
然后写一个QQ的回调类:
* 实现此类是作用于QQ 的回调
* @author Zeo
public class BaseUiListener implements IUiListener{
public void onCancel() {
// TODO Auto-generated method stub
public void onComplete(Object arg0) {
// TODO Auto-generated method stub
public void onError(UiError arg0) {
// TODO Auto-generated method stub
最后重写一个:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
mTencent.onActivityResult(requestCode, resultCode, data);
就此QQ的分享也做好了,记住你在写自己的应用时候,别忘记换掉APP_ID
&&&&&&&&最后一个分享就是新浪微博的分享。这一个是最闹心的分享。
&&&&&&&&首先是在布局文件增加button控件 并且在代码中设置监听。
&&&&&&&&然后我们要下载对应的SDK&&&& weiboSDKCore_3.1.2.jar
&&&&&&&&让我们的MainActivity implements& IWeiboHandler.Response
&&&&&&&&你的微博在那个类里面写 你就用相应的类实现此接口
&&&&&&&&然后是注意事项配置文件的:
&&&&&&&&&&&&&&&&&&&& 这里修改的是你的第一个启动类,也就是MainActivity的 intent-filter& 里面改成如下
&application
android:allowBackup=&true&
android:icon=&@drawable/ic_launcher&
android:label=&@string/app_name&
android:theme=&@style/AppTheme& &
android:name=&com.zeo.manman.MainActivity&
android:label=&@string/app_name& &
&intent-filter&
&action android:name=&android.intent.action.MAIN& /&
                &category android:name=&android.intent.category.LAUNCHER& /&
&action android:name=&com.sina.weibo.sdk.action.ACTION_SDK_REQ_ACTIVITY& /&
&/intent-filter&
&/activity&
&!-- 必须注册在微博授权,分享微博时候用到 --&
&activity android:name=&com.sina.ponent.WeiboSdkBrowser&
android:configChanges=&keyboardHidden|orientation&
android:windowSoftInputMode=&adjustResize&
android:exported=&false& &
&/activity&
&&&&&&&&& 代码:
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
qQfenxiang();
wXfenxiang();
wBfenxiang(savedInstanceState);//微博的分享
* 这里是新浪微博的分享
* @param savedInstanceState
private void wBfenxiang(Bundle savedInstanceState){
// 创建微博分享接口实例
mWeiboShareAPI = WeiboShareSDK.createWeiboAPI(this, &&);
// 获取微博客户端相关信息,如是否安装、支持 SDK 的版本
boolean isInstalledWeibo = mWeiboShareAPI.isWeiboAppInstalled();
int supportApiLevel = mWeiboShareAPI.getWeiboAppSupportAPI();
// 注册第三方应用到微博客户端中,注册成功后该应用将显示在微博的应用列表中。
// 但该附件栏集成分享权限需要合作申请,详情请查看 Demo 提示
// NOTE:请务必提前注册,即界面初始化的时候或是应用程序初始化时,进行注册
mWeiboShareAPI.registerApp();
// 当 Activity 被重新初始化时(该 Activity 处于后台时,可能会由于内存不足被杀掉了),
// 需要调用 {@link IWeiboShareAPI#handleWeiboResponse} 来接收微博客户端返回的数据。
// 执行成功,返回 true,并调用 {@link IWeiboHandler.Response#onResponse};
// 失败返回 false,不调用上述回调
if (savedInstanceState != null) {
mWeiboShareAPI.handleWeiboResponse(getIntent(), this);
&&& 如果以后是你们自己的项目 记得把你们自己申请的APPID& 拿来替换上面的 “”
&&&&&&& 和需要添加的方法:
* 微博的分享
* 第三方应用发送请求消息到微博,唤起微博分享界面。
* @see {@link #sendMultiMessage} 或者 {@link #sendSingleMessage}
private void wbfx() {
if (mWeiboShareAPI.isWeiboAppSupportAPI()) {
int supportApi = mWeiboShareAPI.getWeiboAppSupportAPI();
if (supportApi &= 10351 /*ApiUtils.BUILD_INT_VER_2_2*/) {
sendMultiMessage();
sendSingleMessage();
Toast.makeText(this, R.string.weibosdk_demo_not_support_api_hint, Toast.LENGTH_SHORT).show();
* 实现IWeiboHandler.Response接口要重写的方法
public void onResponse(BaseResponse baseResp) {
switch (baseResp.errCode) {
case WBConstants.ErrorCode.ERR_OK:
Toast.makeText(this, R.string.weibosdk_demo_toast_share_success, Toast.LENGTH_LONG).show();
case WBConstants.ErrorCode.ERR_CANCEL:
Toast.makeText(this, R.string.weibosdk_demo_toast_share_canceled, Toast.LENGTH_LONG).show();
case WBConstants.ErrorCode.ERR_FAIL:
Toast.makeText(this,
getString(R.string.weibosdk_demo_toast_share_failed) + &Error Message: & + baseResp.errMsg,
Toast.LENGTH_LONG).show();
* @see {@link Activity#onNewIntent}
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
// 从当前应用唤起微博并进行分享后,返回到当前应用时,需要在此处调用该函数
// 来接收微博客户端返回的数据;执行成功,返回 true,并调用
// {@link IWeiboHandler.Response#onResponse};失败返回 false,不调用上述回调
mWeiboShareAPI.handleWeiboResponse(intent, this);
* 第三方应用发送请求消息到微博,唤起微博分享界面。
* 注意:当 {@link IWeiboShareAPI#getWeiboAppSupportAPI()} &= 10351 时,支持同时分享多条消息,
* 同时可以分享文本、图片以及其它媒体资源(网页、音乐、视频、声音中的一种)。
private void sendMultiMessage() {
// 1. 初始化微博的分享消息
WeiboMultiMessage weiboMessage = new WeiboMultiMessage();
weiboMessage.textObject = getTextObj();//指向的是文字
weiboMessage.imageObject = getImageObj();//指向的是图片
// 2. 初始化从第三方到微博的消息请求
SendMultiMessageToWeiboRequest request = new SendMultiMessageToWeiboRequest();
// 用transaction唯一标识一个请求
request.transaction = String.valueOf(System.currentTimeMillis());
request.multiMessage = weiboM
// 3. 发送请求消息到微博,唤起微博分享界面
mWeiboShareAPI.sendRequest(MainActivity.this, request);
* 第三方应用发送请求消息到微博,唤起微博分享界面。
private void sendSingleMessage() {
// 1. 初始化微博的分享消息
WeiboMessage weiboMessage = new WeiboMessage();
weiboMessage.mediaObject = getTextObj();
weiboMessage.mediaObject = getImageObj();
// 2. 初始化从第三方到微博的消息请求
SendMessageToWeiboRequest request = new SendMessageToWeiboRequest();
// 用transaction唯一标识一个请求
request.transaction = String.valueOf(System.currentTimeMillis());
request.message = weiboM
// 3. 发送请求消息到微博,唤起微博分享界面
mWeiboShareAPI.sendRequest(MainActivity.this, request);
* 获取分享的文本模板。
* @return 分享的文本模板
private String getSharedText() {
String format =
String text =
String demoUrl = getString(R.string.weibosdk_demo_app_url);
format = getString(R.string.weibosdk_demo_share_webpage_template);
text = String.format(format, getString(R.string.weibosdk_demo_share_webpage_demo), demoUrl);
* 创建文本消息对象。
* @return 文本消息对象。
private TextObject getTextObj() {
TextObject textObject = new TextObject();
textObject.text = getSharedText();
return textO
* 创建图片消息对象。
* @return 图片消息对象。
private ImageObject getImageObj() {
ImageObject imageObject = new ImageObject();
//BitmapDrawable bitmapDrawable = (BitmapDrawable) mImageView.getDrawable();
设置缩略图。 注意:最终压缩过的缩略图大小不得超过 32kb。
bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
imageObject.setImageObject(bitmap);
return imageO
最后一步: 就是在你的项目里面添加文件&
&&&&&&&&&&
到此处5个分享就已经完毕了。
因为在微博上的分享,我现在的思路是这样的如果你们有更好,更简单的思路可以大家一起探讨一下。第一次发帖子希望多多帮助。
这个DEMO新浪微博的APPID 还没申请好。申请好了就上传DEMO




参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:783次
排名:千里之外3154人阅读
javascript(17)
(function () {
url: location.href,
showcount: '0', /*是否显示分享总数,显示:'1',不显示:'0' */
desc: '', /*默认分享理由(可选)*/
summary: '', /*分享摘要(可选)*/
title: '', /*分享标题(可选)*/
site: '', /*分享来源 如:腾讯网(可选)*/
pics: '', /*分享图片的路径(可选)*/
style: '203',
width: 22,
height: 22
var s = [];
for (var i in p) {
s.push(i + '=' + encodeURIComponent(p[i] || ''));
document.write(['&a version=&1.0& class=&qzOpenerDiv& href=&http://sns./cgi-bin/qzshare/cgi_qzshare_onekey?', s.join('&'), '& target=&_blank&&分享&/a&'].join(''));
&script src=&/qzone/app/qzlike/qzopensl.js#jsdate=& charset=&utf-8&&&/script&
调试的时候注意
localhost这种地址是不能用的
但是能用127.0.0.1 汗
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:66719次
排名:千里之外
原创:35篇
转载:24篇
(1)(1)(3)(4)(2)(1)(8)(4)(4)(2)(1)(2)(1)(1)(5)(1)(3)(4)(7)(4)分享消息到QQ(定向分享)
请点击链接查看:。
请点击链接查看:。
由于QQ分享并不需要提前登录,因此,可以直接调用Tencent.shareToQQ的接口;接口调用很简单,代码如下:
public void share(View view)
Bundle bundle = new Bundle();
//这条分享消息被好友点击后的跳转URL。
bundle.putString(Constants.PARAM_TARGET_URL, "");
//分享的标题。注:PARAM_TITLE、PARAM_IMAGE_URL、PARAM_
SUMMARY不能全为空,最少必须有一个是有值的。
bundle.putString(Constants.PARAM_TITLE, "我在测试");
//分享的图片URL
bundle.putString(Constants.PARAM_IMAGE_URL,
&http://img3./photo/-07/8PBKS8G400BV0005.jpg&);
//分享的消息摘要,最长50个字
bundle.putString(Constants.PARAM_SUMMARY, "测试");
//手Q客户端顶部,替换“返回”按钮文字,如果为空,用返回代替
bundle.putString(Constants.PARAM_APPNAME, "??我在测试");
//标识该消息的来源应用,值为应用名称+AppId。
bundle.putString(Constants.PARAM_APP_SOURCE, "星期几" + AppId);
mTencent.shareToQQ(this, bundle , listener);
特别注意:一定要添加以下代码,才可以从回调listener中获取到消息。
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (null&!= mTencent)
mTencent.onActivityResult(requestCode, resultCode, data);
简单的几句话,就可以将实现分享消息给好友。效果如下所示:

我要回帖

更多关于 qq空间分享动态不显示 的文章

 

随机推荐