关于oneKeyshare用法
来源:互联网 发布:淘宝男装店铺排行榜 编辑:程序博客网 时间:2024/06/08 17:02
由于项目需求,要加入分享功能,所以研究了一下oneKeyShare,下面是它的用法,方便大家使用;
首先引入onekeyshare工程,下载地址;
点击打开链接
第二步:选择你要分享的事件应该写到哪里,然后粘贴下面方法,
private String shareurl = RequestUrl.pathDownloadApk;/** * 展示一键分享 * * @param silent * 是否直接分享 * @param platform * 平台 */private void showShare(boolean silent, String platform) {final OnekeyShare oks = new OnekeyShare();oks.setNotification(R.drawable.ic_launcher, view.getContext().getString(R.string.app_name));// oks.setAddress("12345678901");// oks.setTitle(MainActivity.this.getString(R.string.evenote_title));// oks.setTitleUrl("http://sharesdk.cn");oks.setTitle(view.getContext().getString(R.string.app_name)); oks.setText("惠话网络电话下载地址" + shareurl + " (分享自:" + view.getContext() .getString(R.string.app_name) + ")");oks.setUrl(shareurl);// oks.setImagePath(MainActivity.TEST_IMAGE);// oks.setImageUrl(MainActivity.TEST_IMAGE_URL);// oks.setUrl(url);// oks.setFilePath(MainActivity.TEST_IMAGE);// oks.setComment(MainActivity.this.getString(R.string.share));// oks.setSite(MainActivity.this.getString(R.string.app_name));// oks.setSiteUrl(url);// oks.setVenueName("ShareSDK");// oks.setVenueDescription("This is a beautiful place!");// oks.setLatitude(23.056081f);// oks.setLongitude(113.385708f);oks.setSilent(silent);if (platform != null) {oks.setPlatform(platform);}// 取消注释,可以实现对具体的View进行截屏分享// oks.setViewToShare(getPage());// 去除注释,可令编辑页面显示为Dialog模式// oks.setDialogMode();// 去除注释,在自动授权时可以禁用SSO方式// oks.disableSSOWhenAuthorize();// 去除注释,则快捷分享的操作结果将通过OneKeyShareCallback回调// oks.setCallback(new OneKeyShareCallback());// oks.setShareContentCustomizeCallback(new// ShareContentCustomizeDemo());// 去除注释,演示在九宫格设置自定义的图标// Bitmap logo = BitmapFactory.decodeResource(menu.getResources(),// R.drawable.ic_launcher);// String label = menu.getResources().getString(R.string.app_name);// OnClickListener listener = new OnClickListener() {// public void onClick(View v) {// String text = "Customer Logo -- ShareSDK " +// ShareSDK.getSDKVersionName();// Toast.makeText(menu.getContext(), text, Toast.LENGTH_SHORT).show();// oks.finish();// }// };// oks.setCustomerLogo(logo, label, listener);// 去除注释,则快捷分享九宫格中将隐藏新浪微博和腾讯微博// oks.addHiddenPlatform(SinaWeibo.NAME);// oks.addHiddenPlatform(TencentWeibo.NAME);oks.addHiddenPlatform(QZone.NAME);oks.addHiddenPlatform(WechatFavorite.NAME);oks.addHiddenPlatform(Facebook.NAME);oks.addHiddenPlatform(Twitter.NAME);oks.addHiddenPlatform(Renren.NAME);oks.addHiddenPlatform(KaiXin.NAME);oks.addHiddenPlatform(Email.NAME);oks.addHiddenPlatform(ShortMessage.NAME);oks.addHiddenPlatform(SohuMicroBlog.NAME);oks.addHiddenPlatform(NetEaseMicroBlog.NAME);oks.addHiddenPlatform(Douban.NAME);oks.addHiddenPlatform(YouDao.NAME);oks.addHiddenPlatform(SohuSuishenkan.NAME);oks.addHiddenPlatform(Evernote.NAME);oks.addHiddenPlatform(LinkedIn.NAME);oks.addHiddenPlatform(GooglePlus.NAME);oks.addHiddenPlatform(FourSquare.NAME);oks.addHiddenPlatform(Pinterest.NAME);oks.addHiddenPlatform(Flickr.NAME);oks.addHiddenPlatform(Tumblr.NAME);oks.addHiddenPlatform(Dropbox.NAME);oks.addHiddenPlatform(VKontakte.NAME);oks.addHiddenPlatform(Instagram.NAME);oks.addHiddenPlatform(Yixin.NAME);oks.addHiddenPlatform(YixinMoments.NAME);oks.addHiddenPlatform(Mingdao.NAME);oks.addHiddenPlatform(TencentWeibo.NAME);oks.addHiddenPlatform(WechatMoments.NAME);oks.setShareContentCustomizeCallback(new ShareContentCustomizeDemo());oks.show(view.getContext());}// 把图片从drawable复制到sdcard中// copy the picture from the drawable to sdcardprivate void initImagePath() {try {if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())&& Environment.getExternalStorageDirectory().exists()) {imagePath = Environment.getExternalStorageDirectory().getAbsolutePath() + FILE_NAME;} else {imagePath = view.getContext().getApplicationContext().getFilesDir().getAbsolutePath()+ FILE_NAME;}File file = new File(imagePath);if (!file.exists()) {file.createNewFile();pic = BitmapFactory.decodeResource(view.getResources(),R.drawable.ic_launcher);FileOutputStream fos = new FileOutputStream(file);pic.compress(CompressFormat.JPEG, 100, fos);fos.flush();fos.close();}} catch (Throwable t) {t.printStackTrace();imagePath = null;}}/** * 快捷分享项目现在添加为不同的平台添加不同分享内容的方法。 本类用于演示如何区别Twitter的分享内容和其他平台分享内容。 */public class ShareContentCustomizeDemo implementsShareContentCustomizeCallback {@Overridepublic void onShare(Platform platform,cn.sharesdk.framework.Platform.ShareParams paramsToShare) {if (SinaWeibo.NAME.equals(platform.getName())) {// paramsToShare.setImagePath(imagePath);// paramsToShare.setImageUrl(imageUrl);} else if (QQ.NAME.equals(platform.getName())) {paramsToShare.setImagePath(imagePath);// paramsToShare.setImageUrl(imageUrl);// paramsToShare.setText(articleTitle + shareurl);} else if (Wechat.NAME.equals(platform.getName())) {}}}这几个方法粘到你所需要加入一键分享的类中之后,不要忘记在oncreat方法中加入
// 分享ShareSDK.initSDK(view.getContext());new Thread() {public void run() {initImagePath();}}.start();然后再在你的监听事件中调用
showShare(boolean silent, String platform)方法 两个参数第一个false,第二个null第三步:
在AndroidManifest.xml中加入
<activity android:name="cn.sharesdk.framework.ShareSDKUIShell" android:screenOrientation="portrait" android:theme="@android:style/Theme.Translucent.NoTitleBar" android:windowSoftInputMode="stateHidden|adjustResize" />
最后在assets文件夹目录下加入
ShareSDK.xml
其中内容粘入如下代码:
<?xml version="1.0" encoding="utf-8"?><DevInfor> <!-- 说明: 1、表格中的第一项 <ShareSDK AppKey="api20" /> 是必须的,其中的AppKey是您在ShareSDK上注册的开发者帐号的AppKey 2、所有集成到您项目的平台都应该为其在表格中填写相对应的开发者信息,以新浪微博为例: <SinaWeibo Id="1" SortId="1" AppKey="568898243" AppSecret="38a4f8204cc784f81f9f0daaf31e02e3" RedirectUrl="http://www.sharesdk.cn" Enable="true" /> 其中的SortId是此平台在分享列表中的位置,由开发者自行定义,可以是任何整型数字,数值越大 越靠后AppKey、AppSecret和RedirectUrl是您在新浪微博上注册开发者信息和应用后得到的信息 Id是一个保留的识别符,整型,ShareSDK不使用此字段,供您在自己的项目中当作平台的识别符。 Enable字段表示此平台是否有效,布尔值,默认为true,如果Enable为false,即便平台的jar包 已经添加到应用中,平台实例依然不可获取。 各个平台注册应用信息的地址如下:新浪微博 http://open.weibo.com腾讯微博 http://dev.t.qq.comQQ空间 http://connect.qq.com/intro/login/微信好友 http://open.weixin.qq.comFacebook https://developers.facebook.comTwitter https://dev.twitter.com人人网 http://dev.renren.com开心网 http://open.kaixin001.com搜狐微博 http://open.t.sohu.com网易微博 http://open.t.163.com豆瓣 http://developers.douban.com有道云笔记 http://note.youdao.com/open/developguide.html#app印象笔记 https://dev.evernote.com/Linkedin https://www.linkedin.com/secure/developer?newapp=FourSquare https://developer.foursquare.com/搜狐随身看 https://open.sohu.com/Flickr http://www.flickr.com/services/Pinterest http://developers.pinterest.com/Tumblr http://www.tumblr.com/developersDropbox https://www.dropbox.com/developersInstagram http://instagram.com/developer#VKontakte http://vk.com/dev --> <ShareSDK AppKey="???????????" /> <!-- 修改成你在sharesdk后台注册的应用的appkey" --> <!-- ShareByAppClient标识是否使用微博客户端分享,默认是false --> <SinaWeibo AppKey="??????????????" Enable="true" Id="1" RedirectUrl="http://www.sharesdk.cn" ShareByAppClient="true" SortId="1" /> <Wechat AppId="???????????????????" AppSecret="?????????????????????" BypassApproval="true" Enable="true" Id="4" SortId="2" /> <QQ AppId="????????" AppKey="????????????" Enable="true" Id="7" SortId="3" /></DevInfor>
将上面xml中的appid appkey按要求填写好,然后一键分享功能就大功告成。
0 0
- 关于oneKeyshare用法
- 类 OnekeyShare 帮助文档
- ShareSDK(一)-OneKeyShare内容长度有限制
- 关于memcpy的用法
- 关于SqlDataReader一些用法
- 关于__doPostBack()的用法
- 关于MagicAjax的用法
- 关于extern用法说明
- 关于rownum 的用法
- 关于的用法mktemp
- 关于StringToKenizer的用法
- 关于数组的用法
- 关于M_PI的用法
- 关于typedef的用法
- 关于map的用法
- 关于dbnull的用法
- 关于chmod的用法
- 关于wndtabs的用法
- java内部类 访问final变量----局部内部类访问局部变量
- centos+VM 安装集群式hadoop
- java里面的集合Collection和Map;
- PHP中单引号和双引号的区别
- ORA-16038 问题处理
- 关于oneKeyshare用法
- SICP 1.27 1.28体会
- <<orange‘s :一个操作系统的实现>>读书笔记(3)-loader
- C++面向对象部分内容总结
- 重拾算法之路——二分搜索
- leetcode Maximum Product Subarray
- swift的UITableView的使用
- Java自动类型转换和强制类型转换
- IDXGIFactory,IDXGIAdapter,IDXGIOutput