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进行投诉反馈,一经查实,立即删除!

中国网站建设集团wordpress仿导航大全

第一章:Shell脚本的基本语法和命令Shell 脚本是 Linux 和 Unix 系统中自动化任务的核心工具,通过编写一系列命令并保存为可执行文件,可以高效完成重复性操作。Shell 脚本通常以 #!/bin/bash 开头,用于指定解释器,随后是…

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

网站 改域名哪些网站可以做调查赚钱

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

张小明 2025/12/29 4:27:10 网站建设

如何判断网站是竞价站成都网站建设常见问题

HumanML3D完整指南:从零开始掌握3D运动-文本数据集 【免费下载链接】HumanML3D HumanML3D: A large and diverse 3d human motion-language dataset. 项目地址: https://gitcode.com/gh_mirrors/hu/HumanML3D HumanML3D是当前最全面的3D人类动作与文本描述数…

张小明 2025/12/29 4:27:11 网站建设

企业网站管理系统 开源中国疾控中心最新发布

企业系统“难用”的根源,从来不是技术,而是“设计是否踩中场景需求”。深耕B端/C端界面设计16年的兰亭妙微,近期拆解了6个行业优秀界面案例——这些“让用户离不开”的设计,都藏着同一套逻辑:1. 【C端工具:…

张小明 2025/12/29 4:27:09 网站建设

asp装修公司网站软件工程师证书含金量

从零搭建高可用 Elasticsearch 集群:一次讲透安装与跨主机通信的核心逻辑你有没有遇到过这种情况——日志越积越多,grep查半天都找不到关键信息?或者业务数据量一上来,数据库的LIKE查询直接卡成幻灯片?这时候&#xff…

张小明 2025/12/29 4:27:11 网站建设

怎样制作静态网站wordpress邀请码注册功能

你是否厌倦了千篇一律的音乐应用界面?是否渴望拥有一个真正属于自己的音乐世界?any-listen作为一款跨平台私有音乐播放服务,能够帮你实现这个梦想。通过智能音乐管理、远程资源访问和个性化主题定制,你将拥有完全掌控的私人音乐天…

张小明 2025/12/31 13:06:46 网站建设