实现微信打开App功能

news2024/10/6 20:39:12

效果

在这里插入图片描述

要求

在这里插入图片描述

文档

开发标签文档

android接入指南

android实现

1.接入openSDK

dependencies {
api ‘com.tencent.mm.opensdk:wechat-sdk-android:6.8.0’
}

2.注册

在这里插入图片描述
需要在包名为(applicationId)+wxapi的包下加入以上几个类。

类名功能
AppRegister是一个广播接受者,用于注册微信sdk
ShareSDKWeChatActivity封装了shareSDK分享需要的功能
WXConstants存放了微信的app_id,这个id就是shareSDK配置时填写的id
WXEntryActivity给微信的回调。

3.相关实现.

AppRegister

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;

import com.tencent.mm.opensdk.openapi.IWXAPI;
import com.tencent.mm.opensdk.openapi.WXAPIFactory;

public class AppRegister extends BroadcastReceiver {

	@Override
	public void onReceive(Context context, Intent intent) {
		final IWXAPI api = WXAPIFactory.createWXAPI(context, null,false);

		// 将该app注册到微信
		api.registerApp(WXConstants.APP_ID);
	}
}

对应的清单文件

  <receiver
            android:name="com.wznews.news.app.wxapi.AppRegister"
            android:permission="com.tencent.mm.plugin.permission.SEND">
            <intent-filter>
                <action android:name="com.tencent.mm.plugin.openapi.Intent.ACTION_REFRESH_WXAPP" />
            </intent-filter>
        </receiver>

ShareSDKWeChatActivity

import cn.sharesdk.wechat.utils.WechatHandlerActivity;

/**
 * <pre>
 * Created by zhuguohui
 * Date: 2022/11/16
 * Time: 11:37
 * Desc:这是继承自ShareSDK的微信回调累。避免我们的WXEntryActivity将ShareSDK的相关功能给覆盖
 * </pre>
 *
 */
public class ShareSDKWeChatActivity extends WechatHandlerActivity {
}

对应的清单文件
没有

WXConstants

/**
 * Created by zhuguohui
 * Date: 2022/11/16
 * Time: 10:37
 * Desc:
 */
public interface WXConstants {
    String APP_ID="wx123456";
}

WXEntryActivity

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;


import com.tencent.mm.opensdk.modelbase.BaseReq;
import com.tencent.mm.opensdk.modelbase.BaseResp;
import com.tencent.mm.opensdk.modelmsg.ShowMessageFromWX;
import com.tencent.mm.opensdk.openapi.IWXAPI;
import com.tencent.mm.opensdk.openapi.IWXAPIEventHandler;
import com.tencent.mm.opensdk.openapi.WXAPIFactory;
import com.trs.v6.ad.splash.SplashActivityV6;

import org.json.JSONObject;

/**
 * Created by zhuguohui
 * Date: 2022/11/16
 * Time: 10:07
 * Desc:
 */
public class WXEntryActivity extends Activity implements IWXAPIEventHandler {


    private IWXAPI api;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        api = WXAPIFactory.createWXAPI(this, WXConstants.APP_ID, false);

        try {
            Intent intent = getIntent();
            api.handleIntent(intent, this);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    @Override
    protected void onNewIntent(Intent intent) {
        super.onNewIntent(intent);

        setIntent(intent);
        api.handleIntent(intent, this);
    }


    @Override
    public void onReq(BaseReq req) {
        String ext = ((ShowMessageFromWX.Req) req).message.messageExt;
        //以下代码需要替换为自己的业务逻辑
        try {
            JSONObject jsonObject = new JSONObject(ext);
            String url = jsonObject.getString("url");
            SplashActivityV6.openUrl(this, url);
            finish();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }


    @Override
    public void onResp(BaseResp resp) {

     		 //  finish();
            //把原来ShareSDK的微信回调类WXEntryActivity改成SSDKWXEntryActivity
            //然后在AndroidManifest中,注册SSDKWXEntryActivity
            Intent intent = new Intent(this, ShareSDKWeChatActivity.class);
            intent.putExtras(getIntent());
            startActivity(intent);
            finish();


    }
}

对应的清单文件

  <activity
            android:name="com.wznews.news.app.wxapi.WXEntryActivity"
            android:exported="true"
            android:launchMode="singleTask"
            android:taskAffinity="${applicationId}"
            android:theme="@android:style/Theme.Translucent.NoTitleBar" />

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/516735.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

heic如何转换jpg格式?

heic如何转换jpg格式&#xff1f;HEIC是苹果推出的一种新型图片格式&#xff0c;它可以在保证高质量图像的同时减小图像文件的大小。虽然HEIC格式在iOS设备上使用广泛&#xff0c;但在其他操作系统或平台上&#xff0c;特别是Windows系统中&#xff0c;其兼容性和支持程度较差。…

蓝牙单连接和多连接知识

蓝牙单连接和多连接知识 生活中蓝牙连接多路蓝牙的情况越来越多&#xff0c;下面介绍下单连接和多连接的知识&#xff0c;供大家参考 一&#xff1a;蓝牙单连接 蓝牙单连接也称为Point-to-Point 点对点连接&#xff0c;是最常见的蓝牙连接场景,如手机<–>车载蓝牙。&…

〖Web全栈开发①〗—网络编程基础(上)

网络编程基础 网络编程网络编程概述TCP/IP协议IP地址什么是IPIP组成IP 地址使用过程查看IPIp地址分类&#xff1a;子网掩码 端口 socketSocket原理&#xff11;.什么是Socket2.创建一个tcp socket&#xff08;tcp套接字&#xff09; tcp 介绍 &#x1f3d8;️&#x1f3d8;️个…

安卓卡死,卡屏,死机,黑屏

(662条消息) 黑屏定屏那些事 - 系统机制&#xff0c;分析套路和实战&#xff08;系统篇&#xff09;_android黑屏问题分析_内核工匠的博客-CSDN博客

Java 是如何实现双亲委托加载机制的

Java 是一种面向对象的编程语言&#xff0c;它有一套独特的类加载机制。其中&#xff0c;双亲委托加载机制是 Java 类加载机制中的一个重要概念。本文将介绍 Java 的双亲委托加载机制是如何实现的&#xff0c;并解释其作用和优点。 Java 类加载机制 在 Java 中&#xff0c;类的…

树脂可以吸收水里的硝酸盐吗,饮用水矿泉水除硝酸盐,食品级树脂

使用常规的离子交换树脂处理含硫酸盐水中的硝酸盐是困难的。因为树脂几乎交换了水中的所有的硫酸盐后&#xff0c;才与水中的硝酸盐交换。也就是说&#xff0c;硫酸盐的存在会降低树脂对硝酸盐的去除能力。采用Tulsimer A-62MP除硝酸盐树脂优先交换硝酸盐&#xff0c;对硝酸盐的…

形态学运算与仿真:图像处理中形态学操作的简单解释

形态学是图像处理领域的一个分支&#xff0c;主要用于描述和处理图像中的形状和结构。形态学可以用于提取图像中的特征、消除噪声、改变图像的形状等。其中形态学的核心操作是形态学运算。 形态学运算是一种基于形状的图像处理技术&#xff0c;它是通过结构元素与图像进行特定运…

Redis自学之路—安装与配置(一)

目录 简介 安装与配置Redis 下载 上传至linux 安装Redis 解压redis 安装gcc编译环境 注意 停止redis服务 附&#xff1a;Redis的命令行客户端 简介 本文章主要说一下Redis的安装与配置&#xff0c;学一门技术肯定是要从基础学起&#xff0c;其实所有的技术都很简单&…

关于Python爬虫使用代理的问题

当我们使用爬虫程序进行数据采集时&#xff0c;经常会遇到一些网站对爬虫的限制&#xff0c;例如IP封禁、访问频率限制等。为了解决这些问题&#xff0c;我们可以使用代理服务器来进行爬虫操作。本文将介绍爬虫代理的相关知识。 一、什么是爬虫代理&#xff1f; 爬虫代理是指…

IntelliJ IDEA 统一设置编码为utf-8编码 及 jar包运行指定UTF-8

文章目录 一、背景二、解决方法1.修改项目编码格式统一为UTF-82.将项目中的.idea文件夹中的encodings.xml文件中的编码格式改为uft-83.File->Settings->Build,Execution,Deployment -> Compiler -> Java Compiler5. java -jar xxx 命令里面添加UTF-8 编码 一、背景…

笔记-编程语言实现模式(Language Implementation Patterns)

第1章 语言应用初探 Lanugage Applications Cracked Open 1.1 大局观 The Big Picture 主要思想&#xff1a;文件读取部分对输入内容进行“识别”&#xff0c;并输出数据结构作为中间表示&#xff08;intermediate representation&#xff0c;IR&#xff09;&#xff0c;供其…

制造业为什么要数字化?

制造业数字化&#xff0c;主要包含以下一些因素&#xff0c;有优势也有缺点&#xff1a; 制造业数字化的优势&#xff1a; 提高效率&#xff1a;数字化允许各种制造过程自动化&#xff0c;可以提高效率并降低成本。可以缩短生产时间、减少浪费并提高生产率。 增强质量控制&am…

毛泽东《浪淘沙·北戴河》气势磅礴

毛泽东《浪淘沙北戴河》气势磅礴 https://baijiahao.baidu.com/s?id1662486888860973345&wfrspider&forpc 毛主席因其身份地位以及独特的人生经历&#xff0c;在诗词创作中有他人难以企及的气概。今天我们再在欣赏他的一首《浪淘沙北戴河》&#xff0c;这首词第一句便…

Node.JS环境,Express服务器实现GZIP压缩传输

Node.js是一种基于Chrome V8 JavaScript引擎的开源、跨平台而且异步事件驱动的运行时环境&#xff0c;可以让JavaScript代码在服务器端运行。Express是一个流行的Node.js框架&#xff0c;它提供了简单而强大的工具来创建Web服务器和API。 这篇文章将介绍如何使用Node.js和Expr…

关于说服(一)-反抗机制

首先有一个原则&#xff1a;没有人喜欢被改变 不好的话术反而会引起别人的抵触心理 为避免触发反抗机制&#xff0c;可以稍微改变一下话术&#xff1a;将 “你应该” 改为 “我需要”** 没人喜欢说教者 说教者常用句式 1 你为什么不肯去试一试 ->(隐喻) 你在逼别人复习反…

[CryptoHack] Public-key Cryptography Partial Solutions

文章目录 FactoringMonoprimeManyprimeSalty Factoring So far we’ve been using the product of small primes for the modulus, but small primes aren’t much good for RSA as they can be factorised using modern1 methods2. What is a “small prime”? There was a…

汽车毫米波雷达的规定和标准(四)

01 — 虚警漏警问题 工信部无2021【181】号文件中&#xff0c;是这样定义的“虚警”&#xff1a;虚警是指在规定的条件下&#xff0c;实际目标不存在而雷达探测判为有目标的事件。虚警与虚假信号相关&#xff0c;下图中产生的虚警现象是由于干扰信号的功率超过检测门限导致。…

ResearchRabbit.ai: 学术论文摘要研究工具

【产品介绍】 ResearchRabbit是一个帮助研究人员发现、跟踪和分享学术论文的平台。可以根据你的兴趣和收藏提供个性化的推荐和摘要&#xff0c;并且可以让你可视化论文和作者之间的网络关系。 Researchrabbit.ai是一个基于人工智能的文献搜索和管理工具&#xff0c;它可以帮助你…

Speechify: 在线文本转语音(TTS)网站

【产品介绍】 Speechify是一个基于人工智能技术的在线文本转语音&#xff08;TTS&#xff09;网站&#xff0c;可以让用户把任何文本转换成自然流畅的语音&#xff0c;从而提高阅读效率和理解能力。 Speechify有多种平台的应用&#xff0c;包括Chrome扩展、iOS应用、Android应用…

Prompting Learning在CV领域的进展

始于NLP prompt介绍 简单来讲&#xff0c;Prompt就是对原来的输入文本进行一定的处理&#xff0c;使得在不改变预训练模型参数的情况下&#xff0c;相应任务的性能变高。例如&#xff0c;原输入文本为&#xff1a;I received the offer from ETH. &#xff0c;对于文本分类&a…