前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >解决6.5.16及以上版本微信内部M页不能唤起APP

解决6.5.16及以上版本微信内部M页不能唤起APP

作者头像
静默加载
发布2020-05-29 11:10:04
1.3K0
发布2020-05-29 11:10:04
举报

背景

深夜放毒

最近微信唤起app的数据急速下降,产品同学告诉我们大事来了,微信不能唤起Android的App了!!

微信语录

为提升微信 webivew 中网页打开其他应用的体验,防止诱导点击、强制跳出等不合理行为, 我们的“唤起外部客户端”的能力统一调整为:

  • 1、 在 6.5.16 及以上版本的微信客户端中,贵方网页将只能使用 launchApplication 接口,打 开其他应用。该接口会在唤起前要求用户接受弹窗确认。
  • 2、 在 6.5.16 以下版本的微信客户端中,贵方网页可以继续使用现有方式,打开其他应用。

解决版本

我们在接入微信的 opensdk 的时候会在自己项目代码中包含 xxx.xxx.xxx.wxapi.WXEntryActivity 这个页面。 在 6.5.16 及以上版本的微信客户端中,微信首先唤起的是 xxx.xxx.xxx.wxapi.WXEntryActivity 这个页面,将参数放在 extInfo 字段中,由第三方 APP 自行解析处理 ShowMessageFromWX.Req 的微信回调。

代码语言:javascript
复制
public class WXEntryActivity extends WXCallBack {
    @Override
    public void onReq(BaseReq req) {
        super.onReq(req);
        if (req != null && req instanceof ShowMessageFromWX.Req) {
            ShowMessageFromWX.Req request = (ShowMessageFromWX.Req) req;
            if (request.message != null && request.message.mediaObject != null
                    && request.message.mediaObject instanceof WXAppExtendObject) {
                WXAppExtendObject appExtendObject = (WXAppExtendObject) request.message.mediaObject;
                //唤起app的启动页面,将scheme协议中的数据进行透传
                Intent intent = new Intent(this, LaunchActivity.class);
                intent.setData(Uri.parse(appExtendObject.extInfo));
                startActivity(intent);
            }
        }
    }
}

微信官方具体描述我们可以参见: 微信webview唤起外部客户端接入说明2018版

总结

微信这样做,将微信与其下游的app的之前的影响继续加强。虽然我们做了不同的适配,但是同时能得到微信唤起app的成功或者失败的数据。在互联网产品竞争激烈的今天我们不仅仅要做好用户产品也好做好技术产品。

文章到这里就全部讲述完啦,若有其他需要交流的可以留言哦!!

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
  • 微信语录
  • 解决版本
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档