精华内容
下载资源
问答
  • 友盟分享

    2019-09-16 20:40:58
    友盟分享

    友盟分享

    展开全文
  • 友盟分享之微信分享

    2021-08-06 14:45:54
    项目中使用了友盟-微信分享。 想要在分享回调中处理一些逻辑,比如说关闭预览页面,提示分享结果等。按照友盟文档,一步一步操作下来,分享-预览页面-选择微信-跳转分享,通过微信分享之后,选择"返回xxx",理论上...

    项目中使用了友盟-微信分享。

    想要在分享回调中处理一些逻辑,比如说关闭预览页面,提示分享结果等。按照友盟文档,一步一步操作下来,分享-预览页面-选择微信-跳转分享,通过微信分享之后,选择"返回xxx",理论上是触发分享回调,关闭预览页面。但是,直接结果却是分享回调不执行。。。

    郁闷,不应该啊,,,

    回到代码中,发现分享回调不执行。

       private val mUMShareListener = object : UMShareListener {
            override fun onStart(platform: SHARE_MEDIA?) {
                // start
                ToastUtils.showCenterToast("正在执行分享...")
            }
    
            override fun onResult(platform: SHARE_MEDIA?) {
                Trace.e("ShareImage","onResult")
                finishAct()
            }
    
            override fun onError(platform: SHARE_MEDIA?, error: Throwable?) {
                Trace.e("ShareImage","onError:${error?.message}")
                finishAct()
            }
    
            override fun onCancel(platform: SHARE_MEDIA?) {
                Trace.e("ShareImage","onCancel")
                finishAct()
            }
    
        }

    分享逻辑没问题啊,再看看微信回调Activity-----WXEntryActivity

    这个Activity所在路径不能配置错误,一定是应用的包名。这里,因为使用的是友盟,所以需要继承的是

    import com.umeng.socialize.weixin.view.WXCallbackActivity
    class WXEntryActivity: WXCallbackActivity(), IWXAPIEventHandler {
        // 微信登录消息处理类
    
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            WeiChatLoginManager.getWeiChatApi()?.handleIntent(intent, this)
        }
    
        override fun onNewIntent(intent: Intent?) {
            super.onNewIntent(intent)
            WeiChatLoginManager.getWeiChatApi()?.handleIntent(intent, this)
        }
    
        override fun onReq(request: BaseReq?) {
            // 微信发送请求到第三方应用时,会回调到该方法
            Log.d("xxx", "WXEntryActivity:[onReq] openId=${request?.openId}, transaction=${request?.transaction}, type=${request?.type}")
        }
    
        override fun onResp(response: BaseResp?) {
            Log.d("xxx", "WXEntryActivity:[onResp] code=${response?.errCode}, msg=${response?.errStr}")
            if (response == null) { finishMyself(); return }
            when (response.errCode) {
                BaseResp.ErrCode.ERR_AUTH_DENIED, BaseResp.ErrCode.ERR_USER_CANCEL -> {
                    // 登录或者分享失败
                    if (WeiChatLoginManager.WEICHAT_RESPONSE_MSG_TYPE_LOGIN == response.type) {
                        WeiChatLoginManager.dealWithLoginResponse(null, "已取消登录")
                    }
                }
                BaseResp.ErrCode.ERR_OK -> {
                    // 登录或者分享成功
                    if (WeiChatLoginManager.WEICHAT_RESPONSE_MSG_TYPE_LOGIN == response.type) {
                        if (response is SendAuth.Resp) {
                            WeiChatLoginManager.dealWithLoginResponse(response.code)
                        } else {
                            WeiChatLoginManager.dealWithLoginResponse(null)
                        }
                    }
                }
            }
    
          
        }
    
    }

    看到这里的逻辑,明白了问题出现的原因了。

    因为很早之前集成了微信登录,所以在这里处理了一些逻辑,正是原来的这些逻辑影响到了分享的回调。就是上述这个逻辑,当时只是处理了登录的情况,而对分享、支付等情况没有做处理。

    修改如下:

        override fun onResp(response: BaseResp?) {
            Trace.d("xxx", "WXEntryActivity:[onResp] code=${response?.errCode}, msg=${response?.errStr}")
            if (response == null || response.type == null) { finishMyself(); return }
            when(response.type) {
                WeiChatLoginManager.WEICHAT_RESPONSE_MSG_TYPE_LOGIN -> { // 登录
                    when (response.errCode) {
                        BaseResp.ErrCode.ERR_AUTH_DENIED, BaseResp.ErrCode.ERR_USER_CANCEL -> {
                            // 登录或失败
                            WeiChatLoginManager.dealWithLoginResponse(null, "已取消登录")
                        }
                        BaseResp.ErrCode.ERR_OK -> {
                            // 登录成功
                            if (response is SendAuth.Resp) {
                                WeiChatLoginManager.dealWithLoginResponse(response.code)
                            } else {
                                WeiChatLoginManager.dealWithLoginResponse(null)
                            }
                        }
                    }
                }
                else -> { // 分享等
                    super.onResp(response)
                }
            }
    
        
            finishMyself()
        }

     然后调试,友盟分享的回调可正常执行。

    展开全文
  • 项目集成了友盟分享,在Android 11系统手机上,微信分享朋友圈失败: 集成时以按文档配置了FileProvider,具体步骤: Android Manifest XML中添加 <activity android:name=".wxapi.WXEntryActivity" android...

    微信分享朋友圈报错 分享异常 Android 11及以上系统的手机需要使用FileProvider方式分享

    项目集成了友盟的分享,在Android 11系统手机上,微信分享朋友圈失败:
    微信朋友圈分享失败
    集成时以按文档配置了FileProvider,具体步骤:
    Android Manifest XML中添加

    <activity
                android:name=".wxapi.WXEntryActivity"
                android:configChanges="keyboardHidden|orientation|screenSize"
                android:exported="true" />
                
    <provider
        android:name="androidx.core.content.FileProvider"
        android:authorities="${applicationId}.provider"
        android:exported="false"
        android:grantUriPermissions="true">
        <meta-data
            android:name="android.support.FILE_PROVIDER_PATHS"
            android:resource="@xml/file_provider_paths" />
    </provider>
    

    需要建一个xml添加file_provider_paths.xml文件

    <external-files-path name="umeng_cache" path="umeng_cache/"/>
    

    初始化友盟时调用PlatformConfig.setWXFileProvider(”{applicationId}.provider“)

    友盟原文档解决地址:

    如果还未能解决问题,需要注意:
    在这里插入图片描述
    需要使用完整版微信,我报错时使用的jar包为:umeng-share-wechat-simplify-7.1.3,替换为完整版jar包:umeng-share-wechat-full-7.1.4。之后重新编译运行解决。
    完整版下载方式
    微信完整版分享

    展开全文
  • react native 友盟分享插件 请移至 【已停止维护】 官方已出 React-Native 版本,请移至官网地址 或者使用我自己封装的 目前支持微信好友、微信朋友圈、微信收藏、新浪微博、QQ 好友和 QQ 空间分享 安卓版已完工,...
  • Android开发关于友盟分享的封装示例

    千次阅读 2019-11-26 18:10:05
    分享图片给微信好友 && 分享链接给微信好友 package com.thesis.course.minicourse.umeng; import android.app.Activity; import android.content.Context; import android.graphics.Bitmap; import ...

    分享图片给微信好友 && 分享链接给微信好友

    package com.thesis.course.minicourse.umeng;
    
    import android.app.Activity;
    import android.content.Context;
    import android.graphics.Bitmap;
    import android.util.Log;
    
    import com.thesis.course.minicourse.bean.ShareContent;
    import com.thesis.course.minicourse.main.MainActivity;
    import com.thesis.course.minicourse.utils.BitMapUtil;
    import com.umeng.socialize.ShareAction;
    import com.umeng.socialize.bean.SHARE_MEDIA;
    import com.umeng.socialize.media.UMImage;
    import com.umeng.socialize.media.UMWeb;
    
    public class UMShareUtil {
        private static final String TAG = "UMShareUtil";
        private volatile static UMShareUtil instance = new UMShareUtil();
    
        public static UMShareUtil getInstance() {
            return instance;
        }
    
        /**
         *  分享图片给微信好友,并设置要分享的图片为缩略图
         * @param picUrl
         * @param activity
         */
        public void shareImgToWechatFriend(String picUrl,Activity activity){
            UMImage image = new UMImage(activity, picUrl);//网络图片
            image.compressStyle = UMImage.CompressStyle.SCALE;//大小压缩,默认为大小压缩,适合普通很大的图
            image.compressStyle = UMImage.CompressStyle.QUALITY;//质量压缩,适合长图的分享
    //        压缩格式设置
            image.compressFormat = Bitmap.CompressFormat.PNG;//用户分享透明背景的图片可以设置这种方式,但是qq好友,微信朋友圈,不支持透明背景图片,会变成黑色
            new Thread(() -> {
                byte[] bytes = BitMapUtil.getFile(picUrl);
                Log.e(TAG, "run: 异步 bytes " + bytes);
                UMImage thumb =  new UMImage(activity, bytes);
                image.setThumb(thumb);
            }
            ).start();
    
            new ShareAction(activity)
                    .setPlatform(SHARE_MEDIA.WEIXIN)
                    .setDisplayList(SHARE_MEDIA.WEIXIN)
                    .setCallback(UMShareListenerIml.getInstance())
                    .withMedia(image).open();
    
        }
        /**
         * 分享链接给微信好友
         * @param content 要分享的详细内容
         * @param context  分享的宿主acvitity
         */
        public void shareLinkToWechatFriend(ShareContent content, Activity context){
            UMWeb web = new UMWeb(content.getLink());
            new Thread(() -> {
                byte[] bytes = BitMapUtil.getFile(content.getImgUrl());
                Log.e(TAG, "run: 异步 bytes " + bytes);
                UMImage thumb =(new UMImage(context, bytes));
                web.setThumb(thumb);
            }
            ).start();
            web.setTitle(content.getTitle());//标题
            web.setDescription(content.getDesc());//描述
            new ShareAction(context)
                    .withMedia(web)
                    .setDisplayList(SHARE_MEDIA.WEIXIN)
                    .setPlatform(SHARE_MEDIA.WEIXIN)
                    .setCallback(UMShareListenerIml.getInstance())
                    .share();
        }
    }
    
    
    展开全文
  • iOS 友盟分享(微信)

    千次阅读 2019-04-28 15:06:09
    1.使用cocoapods导入友盟SDK pod 'UMCAnalytics', '~> 5.5.2' # 集成微信(精简版0.2M) pod 'UMCShare/Social/ReducedWeChat', '~> 6.9.5' 2.在APPDelegate中的didFinishLaunchingWithOptions配置友盟...
  • 友盟分享文档

    千次阅读 2018-01-05 17:07:09
    友盟分享分为两种形式: 使用分享面板的分享,用户可以调用我们的打开分享面板的方法,点击分享面板的对应平台进行分享。不使用分享面板的分享,用户可以自己写分享按钮,或者触发事件,然后调用我们的分享方法,...
  • 友盟分享预留了用户自定义平台,我们可以直接添加。这里我就不写友盟的集成了,只写分享的例子 一、初始化友盟分享平台 //设置友盟分享面板 + (void)setUMSharePlatform{ //添加微信好友和微信朋友圈分享平台 ...
  • 友盟分享快速集成库。本库基于友盟6.4.4的分享模块版本开发。暂时只集成了, QQ和微信 的分享和登录功能。
  • Android实现友盟分享小程序

    千次阅读 2019-04-17 14:36:21
    上图是实现效果图,下面就来说说怎么实现的,其实就是友盟有提供分享小程序的方法,直接调用就行, //type 1 分享小程序 else if (invitePosterBean.getData().get(currentPosition).getInttype() == 1) { UMMin...
  • 最近写了友盟分享,已经完全实现了,从最一开始的申请APPID到最后分享成功,跟大家细致的分享一下,希望对读者有帮住 一.分享流程介绍 1.下载友盟分享的SDK并导入 需要注意的是要导入很多头文件:(具体步骤移步:...
  • 友盟分享图片错误

    2020-04-07 07:22:49
    发版前一天大家测试出了一个问题:友盟分享一张纯图到微信,缩略图显示错误。 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ayq4qG6m-1586215267050)...
  • 1. 友盟分享涉及到比较重要的类 ShareAction:分享的主类 SHARE_MEDIA:枚举类,定义了可分享平台的类型 PlatformName:定义了所有可分享的平台名称 Platform 里比较特殊的一个“MORE”,说明一下,这个按钮会...
  • Android 友盟分享详细集成过程及所遇问题解决
  • 友盟分享小程序到微信的时候,测试的过程中需要切换开发板,预览版,正式版进行测试,发现找不到切换环境的地方,经过一番百度,才发现原来如此:那么我们在我们分享的代码中加上对应的环境设置就可以了,比如我要...
  • 首先上传一张默认的友盟分享的效果图 看起来还不错,但是总是有这样那样的原因,需要我们对默认效果做出一些改变。 第二种情况 如果你想做出下面的效果: 或者这样的效果 : 总之上面的效果总是在默认的...
  • 友盟分享不成功

    2020-06-30 16:07:15
    由于我接入了tinker热更新,改变了Application,原本将友盟分享初始化及参数配置放在了这个里面(tinker接入过得人应该知道,这是替换原本Application的class),一直分享没有反应,刚开始还以为是哪里的配置有问题...
  • 友盟分享纯图片的坑

    千次阅读 2018-07-06 16:04:20
    友盟分享纯图片的坑Error Domain=UMSocialPlatformErrorDomain Code=2014 "(null)" UserInfo={message=you must using https url, for support the new strategy of AppStore.}原因:4.1 HTTP图片发送...
  • Android友盟分享(微信简单集成)

    千次阅读 2018-12-17 14:52:56
    Android友盟分享(微信简单集成) 1.准备资料 1.1 申请微信应用 登录微信开放平台申请账号,登陆之后进入管理中心申请应用 微信开放平台 点击创建应用,将自己的资料填进去就行了,微信将会进行审核,7个工作日内...
  • 自定义友盟分享界面

    2017-06-23 17:32:06
    还行吧,但是和需求有点出入,那就让我们自己定义一个吧,把友盟分享,自己封装到一个VIew上,自己想让它如何出现就怎么出现。 先看看,放一个View上,横着排列,效果图如下; 就把...
  • 友盟分享二次封装,现有文字分享、图片分享、网页分享功能
  • 超简单友盟分享(微信、QQ)+ 原生微信分享 友盟分享(微信、QQ) 原生微信分享 友盟分享(微信、QQ) 之前写的项目好好的,后来打开就报这个错,搜半天没搜到解决方法。 Could not GET ...
  • 友盟分享文档:...友盟分享使用Gradle依赖快速集成; 1、在工程build.gradle配置脚本中buildscript和allprojects段中添加【友盟+】sdk maven仓库地址 maven { url 'https...
  • 友盟分享网页不显示缩略图

    千次阅读 2018-07-13 11:10:39
    友盟分享网页不显示缩略图 当微信友盟分享缩略图不显示, 问题所在 微信无法加载http 图片, https可以加载, 但暂时又无法解决https 问题, 所以先对网络图片进行缓存 所以我们先要把url图片转换成UIImage类型的...
  • ios友盟分享

    2017-09-28 17:37:22
    这个主要是提到如何通过友盟去自定义分享的步骤: 一、肯定要去友盟官网下载最新的SDK包,然后将SDK导入到你的工程文件夹里面去; 二、注册友盟账号,将你的APP添加到你的账号里面然后获取到一个Key; 三、 在...
  • 新版友盟分享SDK面板不显示问题

    千次阅读 2018-07-17 10:38:27
    这几天做友盟分享【好久没自己动手做了,之前都是复制粘贴】,在根据友盟官方文档使用cocoaPods进行导入项目之后,加入白名单、设置友盟key等等一系列必须的代码要求之后,终于可以再真机上看看分享的效果了,突然...
  • 友盟分享集合

    2016-02-01 08:46:42
    代码简单易懂,将友盟的微信、qq等分享集合在一个类里面,直接拖带项目中,引用即可。
  • 我用官方文档分享(带面板)直接复制的 我又仔细的看了一下文档发现QQ空间的参数SHARE_MEDIA.QZONE没加上,QQ不能进行纯文本分享,空间可以 ![图片说明]...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,668
精华内容 3,467
关键字:

友盟分享