Android 应用配置跳转微信小程序

根据微信开发者文档,实现微信小程序跳转需要获取小程序提供的Scheme URL。官方文档说要通过html动态跳转,经过测试发现,WebView无法识别该Scheme,最终通过Intent方式成功实现跳转。以下是实现代码:

kotlin 复制代码
class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContent {
            WeChatMiniProgramLauncher()
        }
    }
}

@Composable
fun WeChatMiniProgramLauncher() {
    val context = LocalContext.current
    var launchStatus by remember { mutableStateOf<String?>(null) }

    LaunchedEffect(Unit) {
        try {
            val schemeUrl = "weixin://dl/business/?appid=*APPID*&path=*PATH*&query=*QUERY*&env_version=*ENV_VERSION*"
            context.startActivity(
                Intent(Intent.ACTION_VIEW, Uri.parse(schemeUrl))
            )
        } catch (e: ActivityNotFoundException) {
            launchStatus = "请安装微信客户端"
        } catch (e: Exception) {
            launchStatus = "打开失败: ${e.message}"
        }
    }

    Box(
        modifier = Modifier.fillMaxSize(),
        contentAlignment = Alignment.Center
    ) {
        launchStatus?.let { status ->
            Text(
                text = status,
                color = MaterialTheme.colorScheme.error
            )
        } ?: Text("正在打开微信小程序...")
    }
}

注意:此实现需要使用小程序的明文Scheme URL,需要确保小程序已开启相关权限。

自 2023 年 12 月 19 日起,对URL Scheme进行升级,详细调整说明可见《URL Scheme 和 URL

Link优化公告》。改动点概览如下:

  1. 支持开发者在原有加密 URL Scheme 后面拼接参数;

  2. 新增明文 URL Scheme,开发者无需调用接口可自行拼接生成明文Scheme;

  3. 取消 URL Scheme 一人一链的限制,支持同一条连接被多名用户访问;

  4. 每个小程序每天 URL Scheme 和 URL Link 总打开次数上限为300万。

相关推荐
开发者如是说3 分钟前
可能是最好用的多语言管理工具
android·前端·后端
流星雨在线4 分钟前
[汇总]Android Framework相关
android·framework
小红的布丁18 分钟前
Reactor 模型详解:单 Reactor、主从 Reactor 与 Netty 思想
android·java·开发语言
cch891822 分钟前
Laravel与ThinkPHP5.x核心对比
android
酿情师1 小时前
PHP 反序列化漏洞与 POP 链详解:网络安全小白从零入门
android·web安全·php
数厘1 小时前
2.3MySQL 表结构设计:提升 SQL 查询性能的关键
android·sql·mysql
Kiri霧1 小时前
Kotlin递归
android·开发语言·kotlin
普通网友1 小时前
Android开发:使用Kotlin+协程+自定义注解+Retrofit的网络框架
android·kotlin·retrofit
常利兵1 小时前
Kotlin抽象类与接口:相爱相杀的编程“CP”
android·开发语言·kotlin
Arkerman_Liwei1 小时前
Android 新开发模式深度实践:Kotlin + 协程 + Flow+MVVM
android·开发语言·kotlin