在使用shareSDK之前需要先在控制台注册需要使用这个SDK的apk的相关信息
参考文档;http://wiki.mob.com/sdk-share-android-3-0-0/
http://bbs.mob.com/forum.php?mod=viewthread&tid=8212&extra=page%3D1
1.在官网上添加应用,再输入应用的名称例如crossfire
输入名称以后就可以在控制台中看到
再点击设置,可以看到相关的key
使用shareSDK首先在http://sharesdk.mob.com/下载相关的sdk包,然后解压ShareSDK for Android,然后选择需要分享的软件
输入名称和包名,然后将生成的文件夹拷贝到crossfire原本的项目中。
点击确定弹出下面的
拷贝生成的crossFire文件到crossFire项目的目录下,覆盖就可以了,覆盖的时候要注意最好先将原来的项目备份一下
然后在jroject中添加权限
<!-- ShareSDK -->
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
同时添加activity的信息
<!-- ShareSDK -->
<activity
android:name="cn.sharesdk.framework.ShareSDKUIShell"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:windowSoftInputMode="stateHidden|adjustResize" >
<intent-filter>
<data android:scheme="tencent100371282" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
<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" />
在http://dashboard.mob.com/#/share/index中获取到App key复制下来放在assert下面的ShareSDK文件中
然后拷贝代码到需要分享的按钮处
private void showShare() {
ShareSDK.initSDK(this);
OnekeyShare oks = new OnekeyShare();
oks.setTheme(OnekeyShareTheme.SKYBLUE);//设置天蓝色的主题
// 关闭sso授权
oks.disableSSOWhenAuthorize();
// 分享时Notification的图标和文字
oks.setNotification(R.drawable.ic_launcher,
getString(R.string.app_name));
// title标题,印象笔记、邮箱、信息、微信、人人网和QQ空间使用
oks.setTitle(getString(R.string.share));
// titleUrl是标题的网络链接,仅在人人网和QQ空间使用
oks.setTitleUrl("http://sharesdk.cn");
// text是分享文本,所有平台都需要这个字段
oks.setText("我是分享文本");
// imagePath是图片的本地路径,Linked-In以外的平台都支持此参数
oks.setImagePath("/sdcard/test.jpg");// 确保SDcard下面存在此张图片
// url仅在微信(包括好友和朋友圈)中使用
oks.setUrl("http://sharesdk.cn");
// comment是我对这条分享的评论,仅在人人网和QQ空间使用
oks.setComment("我是测试评论文本");
// site是分享此内容的网站名称,仅在QQ空间使用
oks.setSite(getString(R.string.app_name));
// siteUrl是分享此内容的网站地址,仅在QQ空间使用
oks.setSiteUrl("http://sharesdk.cn");
// 启动分享GUI
oks.show(this);
}
源代码:
package com.ldw.beijing;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebSettings.TextSize;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.ImageButton;
import android.widget.ProgressBar;
import cn.sharesdk.framework.ShareSDK;
import cn.sharesdk.onekeyshare.OnekeyShare;
import cn.sharesdk.onekeyshare.OnekeyShareTheme;
public class NewDetailActivity extends Activity implements OnClickListener{
private WebView mWebView;
private ImageButton btn_back;
private ImageButton btn_share;
private ImageButton btn_size;
private ProgressBar pb_progress;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
initView();
}
private void initView(){
requestWindowFeature(Window.FEATURE_NO_TITLE);// 去掉标题
setContentView(R.layout.activity_news_detail);
mWebView = (WebView) findViewById(R.id.wv_web);
btn_back = (ImageButton) findViewById(R.id.btn_back);
btn_share = (ImageButton) findViewById(R.id.btn_share);
btn_size = (ImageButton) findViewById(R.id.btn_size);
pb_progress = (ProgressBar) findViewById(R.id.pb_progress);
//按钮添加点击事件,activity需要继承OnClickListener
btn_back.setOnClickListener(this);
btn_share.setOnClickListener(this);
btn_size.setOnClickListener(this);
//获取activity传递的数据
String url = getIntent().getStringExtra("url");
//获取到webView的设置
WebSettings settings = mWebView.getSettings();
//打开js开关,默认关闭
settings.setJavaScriptEnabled(true);
//显示放大缩小按钮
settings.setBuiltInZoomControls(true);
//实现双击缩放
settings.setUseWideViewPort(true);
mWebView.setWebViewClient(new WebViewClient(){
/*
* 网页开始加载
*/
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
System.out.println("网页开始加载");
//进度条显示
pb_progress.setVisibility(View.VISIBLE);
}
/*
* 网页加载结束
*/
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
System.out.println("网页开始结束");
//加载结束,隐藏进度条
pb_progress.setVisibility(View.GONE);
}
/*
* 所有跳转的链接都会在此方法中回调
*/
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// tel:110
System.out.println("跳转url:" + url);
view.loadUrl(url);
return true;
// return super.shouldOverrideUrlLoading(view, url);
}
});
mWebView.setWebChromeClient(new WebChromeClient() {
/**
* 进度发生变化
*/
@Override
public void onProgressChanged(WebView view, int newProgress) {
System.out.println("加载进度:" + newProgress);
super.onProgressChanged(view, newProgress);
}
/**
* 获取网页标题
*/
@Override
public void onReceivedTitle(WebView view, String title) {
System.out.println("网页标题:" + title);
super.onReceivedTitle(view, title);
}
});
mWebView.loadUrl(url);//加载网页
}
@Override
public void onClick(View v) {
switch(v.getId()){
//返回
case R.id.btn_back:
//关闭当前的页面
finish();
break;
//分享
case R.id.btn_share:
showShare();
break;
//大小的切换
case R.id.btn_size:
showChooseDialog();
break;
default:
break;
}
}
/*
* 一键分享
*/
private void showShare() {
ShareSDK.initSDK(this);
OnekeyShare oks = new OnekeyShare();
oks.setTheme(OnekeyShareTheme.SKYBLUE);//设置天蓝色的主题
// 关闭sso授权
oks.disableSSOWhenAuthorize();
// 分享时Notification的图标和文字
oks.setNotification(R.drawable.ic_launcher,
getString(R.string.app_name));
// title标题,印象笔记、邮箱、信息、微信、人人网和QQ空间使用
oks.setTitle(getString(R.string.share));
// titleUrl是标题的网络链接,仅在人人网和QQ空间使用
oks.setTitleUrl("http://sharesdk.cn");
// text是分享文本,所有平台都需要这个字段
oks.setText("我是分享文本");
// imagePath是图片的本地路径,Linked-In以外的平台都支持此参数
oks.setImagePath("/sdcard/test.jpg");// 确保SDcard下面存在此张图片
// url仅在微信(包括好友和朋友圈)中使用
oks.setUrl("http://sharesdk.cn");
// comment是我对这条分享的评论,仅在人人网和QQ空间使用
oks.setComment("我是测试评论文本");
// site是分享此内容的网站名称,仅在QQ空间使用
oks.setSite(getString(R.string.app_name));
// siteUrl是分享此内容的网站地址,仅在QQ空间使用
oks.setSiteUrl("http://sharesdk.cn");
// 启动分享GUI
oks.show(this);
}
//记录当前选中的item,记录哪一个item被点击
private int mCurrentChooseItem;
//记录当前选中的以后的item
private int mCurrentItem;
/*
* 显示字体大小选择
*/
private void showChooseDialog() {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
String[] items = new String[]{"超大号字体", "大号字体", "正常字体", "小号字体", "超小号字体"};
builder.setTitle("字体设置");
builder.setSingleChoiceItems(items, mCurrentItem, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
mCurrentChooseItem = which;
}
});
builder.setPositiveButton("确定", new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which) {
//获取到webView的设置
WebSettings settings = mWebView.getSettings();
switch(mCurrentChooseItem){
case 0:
settings.setTextSize(TextSize.LARGEST);
break;
case 1:
settings.setTextSize(TextSize.LARGER);
break;
case 2:
settings.setTextSize(TextSize.NORMAL);
break;
case 3:
settings.setTextSize(TextSize.SMALLER);
break;
case 4:
settings.setTextSize(TextSize.SMALLEST);
break;
default:
break;
}
mCurrentItem = mCurrentChooseItem;
}});
builder.setNegativeButton("取消", null);
builder.show();
}
}
/*
* 一键分享
*/
private void showShare() {
ShareSDK.initSDK(this);
OnekeyShare oks = new OnekeyShare();
oks.setTheme(OnekeyShareTheme.SKYBLUE);//设置天蓝色的主题
// 关闭sso授权
oks.disableSSOWhenAuthorize();
// 分享时Notification的图标和文字
oks.setNotification(R.drawable.ic_launcher,
getString(R.string.app_name));
// title标题,印象笔记、邮箱、信息、微信、人人网和QQ空间使用
oks.setTitle(getString(R.string.share));
// titleUrl是标题的网络链接,仅在人人网和QQ空间使用
oks.setTitleUrl("http://sharesdk.cn");
// text是分享文本,所有平台都需要这个字段
oks.setText("我是分享文本");
// imagePath是图片的本地路径,Linked-In以外的平台都支持此参数
oks.setImagePath("/sdcard/test.jpg");// 确保SDcard下面存在此张图片
// url仅在微信(包括好友和朋友圈)中使用
oks.setUrl("http://sharesdk.cn");
// comment是我对这条分享的评论,仅在人人网和QQ空间使用
oks.setComment("我是测试评论文本");
// site是分享此内容的网站名称,仅在QQ空间使用
oks.setSite(getString(R.string.app_name));
// siteUrl是分享此内容的网站地址,仅在QQ空间使用
oks.setSiteUrl("http://sharesdk.cn");
// 启动分享GUI
oks.show(this);
}
//记录当前选中的item,记录哪一个item被点击
private int mCurrentChooseItem;
//记录当前选中的以后的item
private int mCurrentItem;
/*
* 显示字体大小选择
*/
private void showChooseDialog() {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
String[] items = new String[]{"超大号字体", "大号字体", "正常字体", "小号字体", "超小号字体"};
builder.setTitle("字体设置");
builder.setSingleChoiceItems(items, mCurrentItem, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
mCurrentChooseItem = which;
}
});
builder.setPositiveButton("确定", new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which) {
//获取到webView的设置
WebSettings settings = mWebView.getSettings();
switch(mCurrentChooseItem){
case 0:
settings.setTextSize(TextSize.LARGEST);
break;
case 1:
settings.setTextSize(TextSize.LARGER);
break;
case 2:
settings.setTextSize(TextSize.NORMAL);
break;
case 3:
settings.setTextSize(TextSize.SMALLER);
break;
case 4:
settings.setTextSize(TextSize.SMALLEST);
break;
default:
break;
}
mCurrentItem = mCurrentChooseItem;
}});
builder.setNegativeButton("取消", null);
builder.show();
}
}