174.n1-使用shareSDK实现分享

在使用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();
		
	}
	
	
}

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值