wordpress做的外贸网站重庆必去的10个景点

张小明 2026/1/1 8:45:29
wordpress做的外贸网站,重庆必去的10个景点,桂林旅游网官方网站,用cn作网站行么这两种方法#xff08;Intent直接唤起 和 DeepLink#xff09;的核心区别在于#xff1a;它们不需要把代码合并在一起#xff0c;而是保持两个独立的 APK#xff08;App A 和 App B#xff09;#xff0c;通过 Android 系统的通信机制让它们互相“对话”。 假设场景Intent直接唤起 和 DeepLink的核心区别在于它们不需要把代码合并在一起而是保持两个独立的 APKApp A 和 App B通过 Android 系统的通信机制让它们互相“对话”。假设场景App A (主控端)想要打开另一个 App。App B (被控端)拥有你想要展示的功能页面。以下是详细教程方法一通过包名/类名直接唤起 (Intent ComponentName)这种方法最简单直接适合App B 是你自己的且你知道它的确切包名和类名的情况。第一步配置 App B (被唤起方)在 App B 的AndroidManifest.xml中找到你想要让外部启动的那个 Activity比如MainActivity或者FunctionActivity。关键点必须添加android:exportedtrue。!-- App B 的 AndroidManifest.xml --manifestpackagecom.ebike.intercept!-- 假设这是 App B 的包名 --application...!-- 这里的 exportedtrue 允许外部 App 启动它 --activityandroid:name.MainActivityandroid:exportedtrueintent-filteractionandroid:nameandroid.intent.action.MAIN/categoryandroid:nameandroid.intent.category.LAUNCHER//intent-filter/activity/application/manifest第二步配置 App A (发起方) - 适配 Android 11从 Android 11 (API 30) 开始为了隐私安全App A 默认看不见App B 是否安装。你需要添加queries标签声明“我需要查询 App B”。在 App A 的AndroidManifest.xml中!-- App A 的 AndroidManifest.xml --manifestpackagecom.example.appa!-- 必须添加这个否则检测不到 App B 是否安装 --queriespackageandroid:namecom.ebike.intercept/!-- 填 App B 的包名 --/queriesapplication....../manifest第三步在 App A 的 Java 代码中编写跳转逻辑// 在 App A 的点击事件中publicvoidjumpToAppB(){// 1. 定义 App B 的包名和类名StringpackageNamecom.ebike.intercept;StringclassNamecom.ebike.intercept.MainActivity;// 必须是完整路径// 2. 检查 App B 是否安装为了防止 Crashif(isAppInstalled(context,packageName)){IntentintentnewIntent();// 3. 设置 ComponentNameComponentNamecomponentNamenewComponentName(packageName,className);intent.setComponent(componentName);// 4. (可选) 传递数据intent.putExtra(key_from_a,Hello from App A);// 5. 必须加 NEW_TASK 标记如果在非 Activity 环境下启动intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);startActivity(intent);}else{Toast.makeText(context,请先安装 App B,Toast.LENGTH_SHORT).show();}}// 辅助方法检查 App 是否安装privatebooleanisAppInstalled(Contextcontext,StringpackageName){try{context.getPackageManager().getPackageInfo(packageName,0);returntrue;}catch(PackageManager.NameNotFoundExceptione){returnfalse;}}方法二使用 DeepLink (自定义 URL Scheme)这是更推荐的现代做法它的耦合度更低。App A 不需要知道 App B 的具体类名只需要像打开网页一样打开一个 URL例如ebike://home系统会自动找到 App B。第一步配置 App B (被唤起方)你需要给 App B 的某个 Activity 配置一个“暗号”Scheme。在 App B 的AndroidManifest.xml中!-- App B 的 AndroidManifest.xml --activityandroid:name.DetailActivity!-- 这里的 intent-filter 是关键 --intent-filter!-- 必须有 ACTION_VIEW --actionandroid:nameandroid.intent.action.VIEW/!-- 必须有 DEFAULT --categoryandroid:nameandroid.intent.category.DEFAULT/!-- 允许浏览器唤起可选但推荐 --categoryandroid:nameandroid.intent.category.BROWSABLE/!-- 定义暗号ebike://open_detail --!-- scheme: 协议头host: 路径/主机名 --dataandroid:schemeebikeandroid:hostopen_detail//intent-filter/activity第二步在 App B 中接收参数 (可选)在DetailActivity.java的onCreate方法中// App B 的 DetailActivity.javaOverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_detail);// 获取 Intent 中的数据IntentintentgetIntent();Uridataintent.getData();if(data!null){// 比如 URL 是 ebike://open_detail?msghelloid100Stringmsgdata.getQueryParameter(msg);// 获取 helloStringiddata.getQueryParameter(id);// 获取 100Log.d(DeepLink,收到参数: msg);}}第三步在 App A 中编写跳转逻辑App A 现在根本不需要知道 App B 的包名或类名只需要访问这个 URL。// 在 App A 的点击事件中publicvoidjumpByDeepLink(){// 1. 构建 URI并带上参数Stringurlebike://open_detail?msg来自AppA的问候id666;IntentintentnewIntent(Intent.ACTION_VIEW,Uri.parse(url));intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);// 2. 检查系统中是否有 App 能响应这个 Intent// (注意在 Android 11 上如果 App A 没加 queries这个 resolveActivity 也可能返回 null// 但直接 startActivity 通常会弹出一个系统选择框或者直接跳转)try{startActivity(intent);}catch(Exceptione){Toast.makeText(context,没有检测到已安装的目标应用,Toast.LENGTH_SHORT).show();}}总结对比特性方法一直接唤起 (Intent/ComponentName)方法二DeepLink (URL Scheme)原理“我要去某个具体地址找老王”“我要喊一声老王谁是老王谁答应”配置难度简单中等需配置 IntentFilter耦合度高(需硬编码包名类名B重构改名则A会挂)低(只需约定 URL 字符串)灵活性只能 App 唤起App 和 网页浏览器都能唤起参数传递Bundle (类型丰富)URL 字符串 (只能传 String)适用场景两个 App 都是你开发的且不做网页跳转需要从 H5 页面跳入 App或者想要标准化的协议总结如下如果这两个 App 都要安装在同一台专用设备上比如工业PDA、特定的E-bike中控屏使用方法一直接唤起最快。因为环境是可控的您确定两个 App 都会安装直接写包名跳过去就行代码改动最小。如果您希望看起来像一个 App用户体验更好可以把App A 做成一个“壳”Launcher桌面只显示 App A 的图标。App B 在 Manifest 里去掉LAUNCHERcategory这样桌面上看不到 B 的图标。然后用户打开 A点击某个按钮时A 在后台启动 B 的 Activity。这样用户感觉就像是在同一个软件里操作一样。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

学校网站建设措施美发网站怎么做

在软件测试领域,测试分析是确保产品质量的关键环节,它涉及需求理解、场景覆盖和风险识别。然而,传统文本式分析方法往往难以捕捉复杂逻辑的关联性,容易导致测试遗漏或重复。MindMap思维导图作为一种视觉化工具,通过中心…

张小明 2025/12/24 20:00:47 网站建设

做网站的不肯给ftp简单游戏开发

Langchain-Chatchat 与 Kubernetes 集群部署:高可用架构设计 在企业智能化转型的浪潮中,如何安全、高效地利用大模型处理私有知识库,成为技术选型的核心命题。通用云服务虽便捷,但面对敏感数据“不出内网”的硬性要求时往往束手无…

张小明 2025/12/28 15:12:17 网站建设

环保推广哪个网站好常见的网络营销方式有哪几种

Tomcat跨域配置终极指南:5分钟解决CORS问题 【免费下载链接】tomcat Tomcat是一个开源的Web服务器,主要用于部署Java Web应用程序。它的特点是易用性高、稳定性好、兼容性广等。适用于Java Web应用程序部署场景。 项目地址: https://gitcode.com/gh_mi…

张小明 2025/12/30 19:06:35 网站建设

彩票网站定制石家庄网站服务

Linly-Talker如何优化高并发请求下的资源调度? 在一场万人同时在线的直播带货中,观众不断提问:“这款面膜适合敏感肌吗?”“价格还能再优惠吗?”——每个问题都期待秒级回应。如果数字人主播每处理一个请求就要重新加载…

张小明 2025/12/24 19:55:31 网站建设

wordpress上传logo优质的seo网站排名优化软件

命令行HTTP调试终极指南:解锁wuzz工具的高级用法与实战技巧 【免费下载链接】wuzz Interactive cli tool for HTTP inspection 项目地址: https://gitcode.com/gh_mirrors/wu/wuzz 还在为复杂的HTTP调试而头疼吗?面对杂乱的响应数据,你…

张小明 2025/12/26 21:41:58 网站建设