精华内容
下载资源
问答
  • 一键转发激活码后台

    2018-09-29 17:17:32
    可以搭建一键转发激活码后台,带数据库,直接上传空间导入数据库即可
  • 微闪朋友圈一键转发

    2016-09-02 18:44:33
    微闪朋友圈一键转发app
  • 微信一键转发需越狱

    2018-09-29 17:25:07
    可自试试,多开微信可以一键转发,苹果系统需要越狱,可以通过爱思助手什么的安装
  • 微信一键转发小视频

    2016-04-12 18:01:02
    微信一键转发小视频
  • V信朋友圈一键转发

    2016-02-16 06:00:06
    V信朋友圈一键转发
  • 微信朋友圈一键转发插件 java 代码实现。本代码从系统角度分析如何破解微信朋友圈转发,无需安装XPOSE,只用于学术研究. 支持6.6.7
  • 微信小视屏一键转发

    2016-01-30 20:24:46
    ios无需越狱 朋友圈小视屏一键转发 使用PP助手直接导入即可使用 我只是个搬运工而已 具体的自己再研究
  • 一键转发抢红包的实现,里面有搭建教程,特别适合喜欢抢红包人群
  • 一键转发抢红包源码及搭建教程

    热门讨论 2021-01-15 09:00:54
    导读:一键转发抢红包搭建教程如下:源码请在资源模块下载。 搭建教程 第一步注册bmob建立一个项目 项目包括这些表单(file表可以不建立) (应用ID在后台项目设置里面) 表DaSha这样建立 表Sha这样建立...

    导读:一键转发抢红包搭建教程如下:源码请在资源模块下载。

    搭建教程

     第一步注册bmob建立一个项目 项目包括这些表单(file表可以不建立)

    (应用ID在后台项目设置里面)

    表DaSha这样建立

     表Sha这样建立

    找zi()方法第一步 

     

    找zi()方法第2步

     

    把zi()方法中那一场场应用ID换成图0中自己的应用ID

    这样就完成了基本的搭建配置。

    下载地址

    点我下载一键转发抢红包源码及搭建教程。

    展开全文
  • 易一辅助工具腾讯微博小推兔一键转发软件就是款适用于腾讯微博的增加粉丝的工具。对于那些本来好友就少,粉丝也少的小伙伴来说,借助它就能够快速帮你增加腾讯微博中的粉丝,从而让你在里面成为网络红人! 易一辅助...
  • 一键转发工具share.js

    2019-05-06 16:32:46
    Share.js是一款一键转发工具,它可以一键分享到微博、QQ空间、QQ好友、微信、腾讯微博、豆瓣、Facebook、Twitter、Linkedin、Google+、点点等社交网站,使用字体图标。 安装 有3种安装方式: 使用npm ...

     

    2017年07月04日 15:25:21 hahaheyliu 阅读数:10989

    Share.js 详细介绍

    Share.js

    Share.js是一款一键转发工具,它可以一键分享到微博、QQ空间、QQ好友、微信、腾讯微博、豆瓣、Facebook、Twitter、Linkedin、Google+、点点等社交网站,使用字体图标。

    qq20151127-1 2x

    安装

    有3种安装方式:

    1. 使用 npm

      npm install social-share.js
    2. 使用 cdnjs,引入 share.min.css 与 share.min.js 两个链接就好。

    3. 手动下载或者 git clone 本项目。

    使用

    HTML:

    <div class="social-share"></div>
    
    <!--  css & js -->
    <link href="dist/css/share.min.css">
    <script src="dist/js/share.min.js"></script>
    
    // 当你使用类名为 `social-share` 时不需要手动初始化

    自定义配置

    所有配置可选, 通常默认就满足需求:

    可用的配置有:

    url                 : '', // 网址,默认使用 window.location.href
    source              : '', // 来源(QQ空间会用到), 默认读取head标签:<meta name="site" content="http://overtrue" />
    title               : '', // 标题,默认读取 document.title 或者 <meta name="title" content="share.js" />
    description         : '', // 描述, 默认读取head标签:<meta name="description" content="PHP弱类型的实现原理分析" />
    image               : '', // 图片, 默认取网页中第一个img标签
    sites               : ['qzone', 'qq', 'weibo','wechat', 'douban'], // 启用的站点
    disabled            : ['google', 'facebook', 'twitter'], // 禁用的站点
    wechatQrcodeTitle   : '微信扫一扫:分享', // 微信二维码提示文字
    wechatQrcodeHelper  : '<p>微信里点“发现”,扫一下</p><p>二维码便可将本文分享至朋友圈。</p>'

    以上选项均可通过标签 data-xxx 来设置:

    驼峰转为中横线,如wechatQrcodeHelper 的data标签为data-wechat-qrcode-helper

    禁用 google、twitter、facebook 并设置分享的描述

    <div class="share-component" data-disabled="google,twitter,facebook" data-description="Share.js - 一键分享到微博,QQ空间,腾讯微博,人人,豆瓣"></div>

    设置微信二维码标题

    <div class="social-share" data-wechat-qrcode-title="请打开微信扫一扫"></div>

    针对特定站点使用不同的属性(title, url, description,image...)

    <div class="social-share" data-weibo-title="这个标题只有的分享到微博时有用,其它标题为全局标题" data-qq-title="分享到QQ时用此标题"></div>

    你也可以自定义图标

    使用: data-initialized="true" 标签或者 initialized 配置项来禁用自动生成icon功能。

    
     
    1. <div class="social-share" data-initialized="true">

    2.     <a href="#" class="social-share-icon icon-weibo"></a>

    3.     <a href="#" class="social-share-icon icon-qq"></a>

    4.     <a href="#" class="social-share-icon icon-qzone"></a>

    5. </div>

    以上a标题会自动加上分享链接(a 标签必须带 icon-NAME 属性,不然分享链接不会自动加上)。

    如果你想在分享icon列表中内置一些元素,比如放一个收藏按钮在分享按钮的后面:

    
     
    1. <div class="social-share">

    2.     <a href="javascript:;" class="social-share-icon icon-heart"></a>

    3. </div>

    这样并没有实现,因为结果是所有的分享按钮都创建在了收藏按钮的后面了,这时候你就可以用 data-mode="prepend" 来确定分享按钮创建的方式。

    
     
    1. <div class="social-share" data-mode="prepend">

    2.     <a href="javascript:;" class="social-share-icon icon-heart"></a>

    3. </div>

    这样,所有的分享图标就会创建在容器的内容前面,反之可以用 append 创建在容器内容后面,当然这是默认的,也不需要这么做。

    指定移动设备上显示的图标

    <div class="share-component" data-mobile-sites="weibo,qq,qzone,tencent"></div>

    当在手机上打开该页面的时候就只会显示这4个图标了。

    引用

    本项目中二维码生成部分用到了开源组件:lrsjng/jquery-qrcode (MIT License)

    下载地址:

    展开全文
  • 微信一键转发最新版(微商利器)安卓 需XPosed框架支持
  • 苹果。安卓手机微信怎么一键转发朋友圈 内容 或者小视频 免费安装的
  • 微信一键转发(刚刚淘来的,希望对大家有所帮助)
  • 一键转发朋友圈到 APP

    千次阅读 2015-09-04 17:16:37
    目前市面上用的微商转发工具插件效果图: (可以去百度搜索:微商助手,粉加加,) 参考视频:http://v.youku.com/v_show/id_XMTI3MTgyMTYzNg==.html?from=s1.8-1-1.2 ... 以上的功能是一键转发朋友圈到朋友圈

    目前市面上用的微商转发工具插件效果图:

    (可以去百度搜索:微商助手,粉加加,)

    参考视频:http://v.youku.com/v_show/id_XMTI3MTgyMTYzNg==.html?from=s1.8-1-1.2

    http://v.youku.com/v_show/id_XOTI1NTE0OTUy.html?from=s1.8-1-1.2

    以上的功能是一键转发朋友圈到朋友圈。 最老的版本是靠触动精灵脚本实现的, 但是最新技术是靠微信接口实现的。

     

     

    现在我们的要求是:

     

    一键转发朋友圈数据到 我们的APP上传(比如看到某条朋友圈图片漂亮,点一下转发,程序自动把改条朋友圈的所有图片,(图片张数,顺序,文字)原样不变,搬迁到我们的APP上传界面。

    插件实现:可以一键转发当前朋友圈9图或6图,一键转发下载图片及复制文字信息,并自动跳转至APP上传界面,手动点上传发送即可!(省去手动一张张图片另存再插入,自动复制图片及文字)

    附加注明:图片需保证原比例、大小、像素等,不需要压缩图片质量,请确保图片清晰度。

     

    以下截图是我们自己开发的商城APP;

     


    这样做的目的是 方便用户上传数据到我们APP平台,提高了效率。 不用一张张图片另存到手机,然后再返回APP一张张图片插入进去点上传。

    提供的思路: IOS设备必须越狱才可实现,另外这个开发应该是小插件cydia。抓微信朋友圈的包,分析出里面的朋友圈数据,然后在插件中复制记录,在app中粘贴上传

    插件实现功能:可以一键转发当前朋友圈9图或6图,一键下载图片及复制文字信息,并自动跳转至朋友圈分享界面,点发送即可!

    附加注明:图片需保证原比例、大小、像素等,不需要压缩图片质量,请确保图片清晰度。

    展开全文
  • 现在非常流行微信助手,可以一键转发朋友圈发的消息包括小视屏、文字图片等等。他这个功能怎么实现的?网上貌似有微信源码,但是我没有找到具体的答案、所以特此求原理,求解决方法。
  • 一键转发按钮,直接把多张图片拉起朋友圈,自动填充图片,或者多张图片发给好友,文字可以复制过去直接粘贴, 实现思路: 1.先把接口请求下来的多张图片保存到本地,这里是用Glide做的本地缓存 //缓存图片到...

    效果图

    一键转发按钮,直接把多张图片拉起朋友圈,自动填充图片,或者多张图片发给好友,文字可以复制过去直接粘贴,

    实现思路:

    1.先把接口请求下来的多张图片保存到本地,这里是用Glide做的本地缓存

     

    //缓存图片到本地
    for (int i = 0; i < images.size(); i++) {
        Glide.with(this)
                .load(images.get(i).getPic_url()).asBitmap().into(new SimpleTarget<Bitmap>() {
            @Override
            public void onResourceReady(Bitmap resource, GlideAnimation<? super Bitmap> glideAnimation) {
                ImgFileUtils.saveBitmap(PosterXQActivity.this, resource, StringUtils.setDateTime());
            }
        });
    }
    /**工具类代码  * author:zhengfeng on 2017/8/21 10:13  */ 
    public class ImgFileUtils { 
    /**  * 生成文件夹路径  */
      public static String SDPATH = Environment.getExternalStorageDirectory() + "/WS_IMG/"; 
      public static void saveImageToGallery(Context context, Bitmap bmp) {
      // 首先保存图片 
      File appDir = new File(Environment.getExternalStorageDirectory(), "/WS_IMG/"); 
          if (!appDir.exists()) { appDir.mkdir();  } String fileName = System.currentTimeMillis() + ".jpg";
          File file = new File(appDir, fileName); 
          try {
          FileOutputStream fos = new FileOutputStream(file);
          bmp.compress(Bitmap.CompressFormat.JPEG, 100, fos);
          fos.flush(); 
          fos.close();
      } catch (FileNotFoundException e) { 
        e.printStackTrace();
      } catch (IOException e) {
        e.printStackTrace();
        } // 其次把文件插入到系统图库 
        try { MediaStore.Images.Media.insertImage(context.getContentResolver(),  file.getAbsolutePath(), fileName, null);
        } catch (FileNotFoundException e) { e.printStackTrace(); 
        } // 最后通知图库更新  //
        context.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.parse("file://" + path)));
        } 
        /**  
        * 将图片压缩保存到文件夹  * 
        * @param bm 
        * @param picName 
        */ 
        
        public static void saveBitmap(Context context,Bitmap bm, String picName) {
            try {
            // 如果没有文件夹就创建一个程序文件夹 
            if (!isFileExist("")) { 
                File tempf = createSDDir("");
            } File f = new File(SDPATH, picName + ".JPEG");
            Log.e("filepath",f.getAbsolutePath()); 
            PosterXQImgCache.getInstance().setImgCache(f.getAbsolutePath());//缓存保存后的图片路径 
            // 如果该文件夹中有同名的文件,就先删除掉原文件 
            if (f.exists()) { f.delete();
            } 
            FileOutputStream out = new FileOutputStream(f);
            bm.compress(Bitmap.CompressFormat.JPEG, 90, out); 
            out.flush(); 
            out.close(); 
            Log.e("imgfile", "已经保存"); 
            //保存图片后发送广播通知更新数据库 
            Uri uri = Uri.fromFile(f); 
            context.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, uri));
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
                } 
            } 
                /**  
                * 质量压缩 并返回Bitmap  *
                * @param image  
                * 要压缩的图片 
                * @return 压缩后的图片 
                */  private Bitmap compressImage(Bitmap image) {
                ByteArrayOutputStream baos = new ByteArrayOutputStream();
                image.compress(Bitmap.CompressFormat.JPEG, 100, baos);
                // 质量压缩方法,这里100表示不压缩,把压缩后的数据存放到baos中  
                int options = 100;
                while (baos.toByteArray().length / 1024 > 100) {
                // 循环判断如果压缩后图片是否大于100kb,大于继续压缩  
                baos.reset();
                // 重置baos即清空baos 
                image.compress(Bitmap.CompressFormat.JPEG, options, baos);
                // 这里压缩options%,把压缩后的数据存放到baos中 
                options -= 10;
                // 每次都减少10 
                } 
                ByteArrayInputStream isBm = new ByteArrayInputStream(baos.toByteArray());
                // 把压缩后的数据baos存放到ByteArrayInputStream中 
                Bitmap bitmap = BitmapFactory.decodeStream(isBm, null, null);
                // 把ByteArrayInputStream数据生成图片  return bitmap; 
                } 
                /**  
                * 质量压缩  
                *  
                * @param bitmap  
                * @param picName 
                */  
                public static void compressImageByQuality(final Bitmap bitmap,  String picName) { 
                // 如果没有文件夹就创建一个程序文件夹 
                if (!isFileExist("")) { 
                    try { 
                        File tempf = createSDDir("");
                    } catch (IOException e) {
                    // TODO Auto-generated catch block  
                        e.printStackTrace();
                        } 
                    }
                    File f = new File(SDPATH, picName + ".JPEG"); 
                    // 如果该文件夹中有同名的文件,就先删除掉原文件
                    if (f.exists()) { 
                        f.delete();
                    } 
                    ByteArrayOutputStream baos = new ByteArrayOutputStream();
                    int options = 100;
                    // 质量压缩方法,这里100表示不压缩,把压缩后的数据存放到baos中 
                    bitmap.compress(Bitmap.CompressFormat.JPEG, options, baos); 
                    // 循环判断如果压缩后图片是否大于200kb,大于继续压缩 
                    while (baos.toByteArray().length / 1024 > 500) { 
                    // 重置baos即让下一次的写入覆盖之前的内容  baos.reset(); 
                    // 图片质量每次减少5  options -= 5;  
                    // 如果图片质量小于10,则将图片的质量压缩到最小值 
                    if (options < 0) options = 0;  
                    // 将压缩后的图片保存到baos中  b
                    itmap.compress(Bitmap.CompressFormat.JPEG, options, baos); 
                    // 如果图片的质量已降到最低则,不再进行压缩  
                    if (options == 0) break;
                    }
                    // 将压缩后的图片保存的本地上指定路径中  
                    FileOutputStream fos; 
                        try { 
                        fos = new FileOutputStream(new File(SDPATH, picName + ".JPEG")); 
                        fos.write(baos.toByteArray());  
                        fos.flush(); 
                        fos.close(); 
                        } catch (
                        FileNotFoundException e) {
                        e.printStackTrace();
                        } catch (IOException e) { 
                        e.printStackTrace();
                        }
                    } 
                    /**  
                    * 创建文件夹  *
                    * @param dirName  
                    * 文件夹名称  
                    * @return 文件夹路径  
                    * @throws IOException  
                    */  
                    public static File createSDDir(String dirName) throws IOException {
                        File dir = new File(SDPATH + dirName);
                        if (Environment.getExternalStorageState().equals( Environment.MEDIA_MOUNTED)) {
                            System.out.println("createSDDir:" + dir.getAbsolutePath()); 
                            System.out.println("createSDDir:" + dir.mkdir()); 
                            } return dir; 
                    } 
                    /** 
                    * 判断改文件是否是一个标准文件  *
                    * @param fileName  
                    * 判断的文件路径  
                    * @return 判断结果  
                    */  
                    public static boolean isFileExist(String fileName) {
                        File file = new File(SDPATH + fileName); 
                        file.isFile(); 
                        return file.exists(); 
                    } 
                    /** 
                    * 删除指定文件  *
                    * @param fileName  
                    */  
                    public static void delFile(String fileName) { 
                        File file = new File(SDPATH + fileName); 
                        if (file.isFile()) { 
                            file.delete(); 
                            } 
                        file.exists(); 
                    } 
                    /**  
                    * 删除指定文件  
                    * @param file 
                    */  
                    public static void deleteFile(File file) { 
                        if (file.exists()) { 
                        // 判断文件是否存在 
                        if (file.isFile()) { 
                        // 判断是否是文件  
                        file.delete(); 
                        // delete()方法 你应该知道 是删除的意思;
                        } else if (file.isDirectory()) {
                        // 否则如果它是一个目录 
                        File files[] = file.listFiles();
                        // 声明目录下所有的文件 files[]; 
                        for (int i = 0; i < files.length; i++) {
                        // 遍历目录下所有的文件  
                        deleteFile(files[i]); 
                        // 把每个文件 用这个方法进行迭代 
                        } 
                        } 
                        file.delete(); 
                    } else { 
                        Log.i("TAG", "文件不存在!");
                        } 
                    } 
                    /**  
                    * 删除指定文件夹中的所有文件  
                    */  
                    public static void deleteDir() { 
                        File dir = new File(SDPATH);  
                        if (dir == null || !dir.exists() || !dir.isDirectory()) return;  
                            for (File file : dir.listFiles()) {
                            if (file.isFile()) file.delete(); 
                            else if (file.isDirectory()) deleteDir(); 
                        } 
                        dir.delete();  
                    } 
                    /**  
                    * 判断是否存在该文件  *
                    * @param path  * 文件路径  
                    * @return  
                    */  
                    public static boolean fileIsExists(String path) { 
                        try { 
                            File f = new File(path);
                            if (!f.exists()) { 
                                return false; 
                            } 
                        } catch (Exception e) { 
                                return false; 
                            } 
                            return true; 
                        } 
                    }

     

    2.缓存图片的同时把图片路径做一个缓存,为了拉起朋友圈直接带过去多张图片路径

     

     

    public class PosterXQImgCache {
    
        private List<String> imgCache = new ArrayList<>();//用于存放保存后的图片路径
        private static final PosterXQImgCache instance = new PosterXQImgCache();
    
    
        public static PosterXQImgCache getInstance() {
            return instance;
        }
    
        public List<String> getImgCache() {
            return imgCache;
        }
    
        public void setImgCache(String path) {//传入保存后的图片绝对路径
            imgCache.add(path);
        }
    
        public void removeImgCache() {//清空缓存
            imgCache.clear();
        }
    }

    3,一键转发点击事件,直接拿到缓存后的图片路径集合,以Uri数组的形式传入多张图片文件

     

     

    case R.id.one_tranmit://一键转发
        imgCache = PosterXQImgCache.getInstance().getImgCache();
        Uri[] uris = new Uri[imgCache.size()];//创建用于存放图片的Uri数组
        //循环缓存路径分别生成文件,添加到图片Uri数组中
        for (int i = 0; i < imgCache.size(); i++) {
            uris[i] = Uri.fromFile(new File(imgCache.get(i)));
        }
    
        requestCopy(text);//复制文字内容到粘贴板
        //调用转发微信功能类
        shareUtils = new ShareUtils(this, text);
        shareUtils.setUri(uris);
    
        break;
    
     
    /**分享多图到微信或者朋友圈*/
    
    import android.content.ComponentName;
    import android.content.Context;
    import android.content.Intent;
    import android.content.pm.PackageInfo;
    import android.content.pm.PackageManager;
    import android.graphics.drawable.BitmapDrawable;
    import android.net.Uri;
    import android.util.Log;
    import android.view.Gravity;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.Button;
    import android.widget.ImageView;
    import android.widget.PopupWindow;
    import android.widget.Toast;
    
    import com.example.common_lib.R;
    import com.ss.sszb.SszbApp;
    import com.ss.sszb.activity.PersonalInformationActivity;
    import com.ss.sszb.dialog.ChooseShareTypeDialog;
    import com.ss.sszb.dialog.ChooseShareWxImgDialog;
    import com.umeng.socialize.ShareAction;
    import com.umeng.socialize.UMShareAPI;
    import com.umeng.socialize.bean.SHARE_MEDIA;
    import com.umeng.socialize.media.UMImage;
    import com.umeng.socialize.media.UMWeb;
    import com.zd.mvp.common.util.StringUtils;
    
    import java.io.File;
    import java.util.ArrayList;

    /**分享多图到微信或者朋友圈工具类*/

    public class ShareUtils {
    
        /**
         * 微信7.0版本号,兼容处理微信7.0版本分享到朋友圈不支持多图片的问题
         */
        private static final int VERSION_CODE_FOR_WEI_XIN_VER7 = 1380;
        /**
         * 微信包名
         */
        public static final String PACKAGE_NAME_WEI_XIN = "com.tencent.mm";
    
        PopupWindow popupWindow;
        Context context;
        private String path;//单张图片路径
        private String content;
        private Button btn;
        private Uri[] uris;//多张图片路径uri数组
        public ShareUtils(Context context){
            this.context=context;
            //  this.path=path;
          //  this.content=content;
    
            //  this.btn=btn;
    
            showChosePayTypeDialog();
        }
    
        public void setUri(Uri[] uris){
            this.uris = uris;
        }
    
        public void setPath(String path){
            this.path = path;
        }
    
        /**选择分享方式弹窗*/
        ChooseShareWxImgDialog chooseShareTypeDialog;
        public void showChosePayTypeDialog() {
    
            if (chooseShareTypeDialog == null) {
                chooseShareTypeDialog = new ChooseShareWxImgDialog(context);
            }
    
            chooseShareTypeDialog.show();
    
    
            chooseShareTypeDialog.setChoseTypeListener(new ChooseShareWxImgDialog.setChoseTypeListener() {
                @Override
                public void onChoseType(int type) {
                    if (type == 1){//微信
                        if (SszbApp.isWeixinAvilible(context)) {
                            shareWXSomeImg(context,uris);
                        } else {
                            Toast.makeText(context, "请先安装微信", Toast.LENGTH_SHORT).show();
                        }
    
                    } else if (type == 2) {//朋友圈
                        if (SszbApp.isWeixinAvilible(context)) {
                            shareweipyqSomeImg(context,uris);//拉起微信朋友圈带多张图片
                        } else {
                            Toast.makeText(context, "请先安装微信", Toast.LENGTH_SHORT).show();
                        }
                    }
                }
            });
        }
    
    //    private void showpop() {
    //        View view= LayoutInflater.from(context).inflate(
    //                R.layout.share_view, null);
    //        ImageView img_weixin= (ImageView) view.findViewById(R.id.share_weixin);
    //        ImageView img_pyq= (ImageView) view.findViewById(R.id.share_pengyouquan);
    //        popupWindow = new PopupWindow(view, ViewGroup.LayoutParams.MATCH_PARENT,
    //                ViewGroup.LayoutParams.WRAP_CONTENT, true);
    //        popupWindow.setBackgroundDrawable(new BitmapDrawable()); // 点击返回按钮popwindow消失
    //
    //        img_weixin.setOnClickListener(new View.OnClickListener() {
    //            @Override
    //            public void onClick(View v) {
    //                if (StringUtils.isWeixinAvilible(context)) {// 判断是否安装微信客户端
    //                    // shareweixin(path);
    //                    shareWXSomeImg(context,uris);
    //                    // login(SHARE_MEDIA.WEIXIN);
    //                } else {
    //                    ActivityUtil.showToast(context, "请安装微信客户端");
    //                }
    //
    //                popupWindow.dismiss();
    //            }
    //        });
    //        img_pyq.setOnClickListener(new View.OnClickListener() {
    //            @Override
    //            public void onClick(View v) {
    //
    //                if (StringUtils.isWeixinAvilible(context)) {// 判断是否安装微信客户端
    //                    //   shareweipyq(path,content);//拉起微信朋友圈带一张图片
    //                    shareweipyqSomeImg(context,uris);//拉起微信朋友圈带多张图片
    //                    // login(SHARE_MEDIA.WEIXIN);
    //                } else {
    //                    ActivityUtil.showToast(context, "请安装微信客户端");
    //                }
    //                popupWindow.dismiss();
    //            }
    //        });
    //
    //        popupWindow.showAtLocation( LayoutInflater.from(context).inflate(
    //                R.layout.activity_posterxq, null).findViewById(R.id.img_share), Gravity.BOTTOM, 0, 0);// 先设置popwindow的所有参数,最后再show
    //
    //    }
    
        /**
         * 拉起微信好友发送单张图片
         * */
        private void shareweixin(String path){
            Uri uriToImage = Uri.fromFile(new File(path));
            Intent shareIntent = new Intent();
            //发送图片到朋友圈
            //ComponentName comp = new ComponentName("com.tencent.mm", "com.tencent.mm.ui.tools.ShareToTimeLineUI");
            //发送图片给好友。
            ComponentName comp = new ComponentName("com.tencent.mm", "com.tencent.mm.ui.tools.ShareImgUI");
            shareIntent.setComponent(comp);
            shareIntent.setAction(Intent.ACTION_SEND);
            shareIntent.putExtra(Intent.EXTRA_STREAM, uriToImage);
            shareIntent.setType("image/jpeg");
            context.startActivity(Intent.createChooser(shareIntent, "分享图片"));
        }
        /**
         * 拉起微信朋友圈发送单张图片
         * */
        private void shareweipyq(String path,String content){
            Uri uriToImage = Uri.fromFile(new File(path));
            Intent shareIntent = new Intent();
            //发送图片到朋友圈
            ComponentName comp = new ComponentName("com.tencent.mm", "com.tencent.mm.ui.tools.ShareToTimeLineUI");
            //发送图片给好友。
    //        ComponentName comp = new ComponentName("com.tencent.mm", "com.tencent.mm.ui.tools.ShareImgUI");
            shareIntent.setComponent(comp);
            shareIntent.putExtra("Kdescription", content);
            shareIntent.setAction(Intent.ACTION_SEND);
            shareIntent.putExtra(Intent.EXTRA_STREAM, uriToImage);
            shareIntent.setType("image/jpeg");
            context.startActivity(Intent.createChooser(shareIntent, "分享图片"));
        }
    
        /**
         * 拉起微信朋友圈发送多张图片
         * */
        private void shareweipyqSomeImg(Context context,Uri[] uri){
            Intent shareIntent = new Intent();
            //1调用系统分享
           // shareIntent.setAction(Intent.ACTION_SEND_MULTIPLE);
            shareIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    
            //2添加图片数组
            ArrayList<Uri> imageUris = new ArrayList<>();
            for (int i = 0; i < uri.length; i++) {
                imageUris.add(uri[i]);
                Log.e("shareIntent",uri[i]+"路径");
            }
    
            if (getVersionCode(context,PACKAGE_NAME_WEI_XIN) < VERSION_CODE_FOR_WEI_XIN_VER7) {
                // 微信7.0以下版本
                shareIntent.setAction(Intent.ACTION_SEND_MULTIPLE);
                shareIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM,imageUris);
            } else {
                // 微信7.0及以上版本,朋友圈只支持单张图片分享
                shareIntent.setAction(Intent.ACTION_SEND);
                shareIntent.putExtra(Intent.EXTRA_STREAM,uri[0]);
            }
    
            shareIntent.setType("image/*");
    
            //3指定选择微信
            ComponentName componentName = new ComponentName("com.tencent.mm","com.tencent.mm.ui.tools.ShareToTimeLineUI");
            shareIntent.setComponent(componentName);
    
            //4开始分享
            context.startActivity(Intent.createChooser(shareIntent,"分享图片"));
        }
    
        /**
         * 拉起微信发送多张图片给好友
         * */
        private void shareWXSomeImg(Context context,Uri[] uri){
            Intent shareIntent = new Intent();
            //1调用系统分析
            shareIntent.setAction(Intent.ACTION_SEND_MULTIPLE);
            shareIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    
            //2添加图片数组
            ArrayList<Uri> imageUris = new ArrayList<>();
            for (int i = 0; i < uri.length; i++) {
                imageUris.add(uri[i]);
            }
    
            shareIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM,imageUris);
            shareIntent.setType("image/*");
    
            //3指定选择微信
            ComponentName componentName = new ComponentName("com.tencent.mm","com.tencent.mm.ui.tools.ShareImgUI");
            shareIntent.setComponent(componentName);
    
            //4开始分享
            context.startActivity(Intent.createChooser(shareIntent,"分享图片"));
        }
    
        /**
         * 获取制定包名应用的版本的versionCode
         * @param context
         * @param
         * @return
         */
        public static int getVersionCode(Context context,String packageName) {
            try {
                PackageManager manager = context.getPackageManager();
                PackageInfo info = manager.getPackageInfo(packageName, 0);
                int version = info.versionCode;
                return version;
            } catch (Exception e) {
                e.printStackTrace();
                return 0;
            }
        }
    
    }

    //弹窗dialog代码

    package com.ss.sszb.dialog;
    
    import android.app.Dialog;
    import android.content.Context;
    import android.os.Bundle;
    import android.support.annotation.NonNull;
    import android.util.DisplayMetrics;
    import android.view.Gravity;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.Window;
    import android.view.WindowManager;
    import android.widget.RelativeLayout;
    import android.widget.TextView;
    
    import com.ss.sszb.R;
    
    /**
     * @autor: zf
     * @Description: 选择分享多张图片到微信-朋友圈方式
     * @Date: 2019/1/23 12:18
     */
    public class ChooseShareWxImgDialog extends Dialog implements View.OnClickListener {
    
        private Context context;
        private TextView tvCancelshare;
        private RelativeLayout rl_sharewx,rl_shareqq,rl_sharewb,rl_sharepyq,rl_shareqqzone;
    
        private setChoseTypeListener choseTypeListener;
    
        public ChooseShareWxImgDialog(@NonNull Context activity) {
            super(activity, R.style.CustomDialog_Translucent);
            this.context = activity;
            setCanceledOnTouchOutside(true); // 点击空白区域可以Dismiss对话框
            setCancelable(true); // 点击返回按键可以Dismiss对话框
            init();
        }
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            super.onCreate(savedInstanceState);
    
            init();
        }
    
        public void init() {
            LayoutInflater inflater = LayoutInflater.from(context);
            View view = inflater.inflate(R.layout.dialog_sharewx_someimg, null);
            setContentView(view);
    
            tvCancelshare = findViewById(R.id.tvCancelshare);
            rl_sharewx = findViewById(R.id.rl_sharewx);
            rl_sharepyq = findViewById(R.id.rl_sharepyq);
    
            tvCancelshare.setOnClickListener(this);
            rl_sharewx.setOnClickListener(this);
            rl_sharepyq.setOnClickListener(this);
    
            Window dialogWindow = getWindow();
            WindowManager.LayoutParams lp = dialogWindow.getAttributes();
            dialogWindow.setGravity(Gravity.BOTTOM);
            DisplayMetrics d = context.getResources().getDisplayMetrics(); // 获取屏幕宽、高用
            lp.width = WindowManager.LayoutParams.MATCH_PARENT; // 高度设置为屏幕的0.6
            lp.height = WindowManager.LayoutParams.WRAP_CONTENT;
            dialogWindow.setAttributes(lp);
    
        }
    
        @Override
        public void onClick(View view) {
            switch (view.getId()){
                case R.id.rl_sharewx:
                    choseTypeListener.onChoseType(1);
                    break;
                case R.id.rl_sharepyq:
                    choseTypeListener.onChoseType(2);
                    break;
                case R.id.tvCancelshare:
                    this.dismiss();
                    break;
                default:
                    this.dismiss();
                    break;
    
            }
            this.dismiss();
        }
        public void setChoseTypeListener(setChoseTypeListener listener){
                this.choseTypeListener = listener;
        }
    
        public interface setChoseTypeListener {
            void onChoseType(int type);
        }
    }
    

    //样式

    <style name="CustomDialog" parent="android:style/Theme.Dialog">
        <item name="android:windowBackground">@color/colorTransparent</item>
        <item name="android:windowIsTranslucent">false</item><!--半透明-->
        <item name="android:windowNoTitle">true</item>
        <item name="android:backgroundDimEnabled">false</item><!--模糊-->
    </style>
    
    <style name="CustomDialog_Translucent" parent="CustomDialog">
        <item name="android:windowIsTranslucent">true</item><!--半透明-->
        <item name="android:backgroundDimEnabled">true</item><!--模糊-->
    </style>

    //dialog布局文件自己定义


    4,每次新的页面打开,请求数据回来记得情况把缓存清空,每次只保存新的

     

     

    PosterXQImgCache.getInstance().removeImgCache();//先清空路径缓存
    ImgFileUtils.deleteDir();//删除本地缓存的图片
    //缓存图片到本地
    for (int i = 0; i < images.size(); i++) {
        Glide.with(this)
                .load(images.get(i).getPic_url()).asBitmap().into(new SimpleTarget<Bitmap>() {
            @Override
            public void onResourceReady(Bitmap resource, GlideAnimation<? super Bitmap> glideAnimation) {
                ImgFileUtils.saveBitmap(PosterXQActivity.this, resource, StringUtils.setDateTime());
            }
        });
    }

    这样就实现一键转发图片或者文字到微信或者朋友圈的功能,每一个问题的解决都将让你前进一步,加油!

     

    展开全文
  • 可以实现微信小视屏转发到朋友圈的功能,原理来源于网络。录制一段小视屏,然后用其它小视屏替换掉,再确认发送。 源码里有详细的备注,每一步操作是什么意义,细看都能看懂。 另:我想说的重点,模拟触摸是不需要...
  • 转载地址:http://blog.csdn.net/zflove168/article/details/79216773package com.derivative.client.util; import android.content.ComponentName; import android.content.Context; import android.content....
  • 刚才在网上搜关于一键转发的代码,可谓是八仙过海、各显神通。同时也有很多像我这样求码的同学,茫茫大海中寻找最优代码。后面一琢磨:“咦,现在互联网讲究的是开放,怎么不去官网找找呢?” 故,逐个打开网址,...
  • 2、进入本条便签的查看页面后,找到需要分享...5、接着就会自动跳转到发送朋友圈页面,并且默认添加了本条图片,我们还可以输入简单的文字提示内容,并点击发表按钮,就可以成功将本张图片一键转发到朋友圈。 ...
  • 疼讯一键转发总失败

    2011-10-21 14:29:00
    在分享转发的时候,竟然总是失败,返回的错误就是网络连接原因,一开始以为自己的js写错了。经过调查才发现,原来是官方给的连接有问题。把_u=后面的地址换为:http://v.t.qq.com/share/share.php?+参数。。。。。就...
  • 作者:viplac 刚刚亲测,可用,并且是无打扰的,原理是查找好友微信账号,然后添加,如果是好友就提示添加成功,不是好友会提示请输入验证,然后停止操作,这样就实现了免打扰功能, 然后可以设置检测时间 ...
  • 我们很容易就获取到了系统的时间: ...至于一键同步到微博就是这样: <!-- JiaThis Button BEGIN --> <script type="text/javascript">var jiathis_config = {data_track_clickback:true}; ...
  •  针对中青年网民对微博的喜爱,本次推广打通广告位与微博两个渠道,在所有广告位均添加转发至新浪微博按钮,一键点击按钮即可实现微博转发,促进了活动的二次甚至多次传播,同时,也为国美官方微博“有国美生活美”...
  • 微信一键语音转发一键朋友圈转发,防封,免费微商微信,免费多开微信

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 464
精华内容 185
关键字:

一键转发