南昌市网站建设导航网站超链接如何做

张小明 2026/1/15 14:20:42
南昌市网站建设,导航网站超链接如何做,福建中兴建设有限公司网站,手机兼职赚钱一单一结微信群这两种方法#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进行投诉反馈,一经查实,立即删除!

360网站兼容模式国内有名室内设计公司

OpenList是一款基于AList开发的开源文件列表程序,专门为解决多平台文件分散管理难题而生。它支持40多种主流存储服务,让你通过统一的Web界面轻松管理阿里云盘、OneDrive、天翼云盘等各类网盘文件,真正实现一站式文件管理解决方案。 【免费下载…

张小明 2026/1/10 17:08:58 网站建设

建行网站首页登录做一个营销型网站

用一块不到5美元的模块,打造一个能识别人脸的智能门禁系统你有没有过这样的经历:出门忘带钥匙、密码被蹭、甚至邻居顺手帮你“试”了下门锁?传统门禁系统的痛点显而易见——可复制、难管理、无记录。而今天,我们只用一块成本不足5…

张小明 2026/1/10 18:14:30 网站建设

emlog怎么做视频网站假如做网站推广如何推广

Aria2终极配置指南:5步打造专业级下载系统 【免费下载链接】aria2.conf Aria2 配置文件 | OneDrive & Google Drvive 离线下载 | 百度网盘转存 项目地址: https://gitcode.com/gh_mirrors/ar/aria2.conf 还在为下载速度慢、文件管理混乱而烦恼吗&#xf…

张小明 2026/1/10 15:33:47 网站建设

网站建设哪家最专业加查网站建设

军事仿真训练:生成逼真的战场通讯语音环境 在现代军事仿真系统中,一个常被忽视却至关重要的细节正悄然发生变革——声音。 过去,指挥员下达命令时播放的是一段预录好的标准化语音;侦察兵汇报敌情时,语气永远冷静得像读…

张小明 2026/1/11 15:17:07 网站建设

SEO网站价格免费部署网站

如何快速解决rtw89驱动中Realtek 8922AE网卡的"Unknown firmware header version 10"错误 【免费下载链接】rtw89 Driver for Realtek 8852AE, an 802.11ax device 项目地址: https://gitcode.com/gh_mirrors/rt/rtw89 作为Linux用户,当你满怀期待…

张小明 2026/1/10 18:14:13 网站建设

网站对联广告html代码外贸建站模板价格

RePKG终极指南:轻松解锁Wallpaper Engine资源宝库 【免费下载链接】repkg Wallpaper engine PKG extractor/TEX to image converter 项目地址: https://gitcode.com/gh_mirrors/re/repkg 还在为Wallpaper Engine中的精美壁纸资源无法直接使用而烦恼吗&#x…

张小明 2026/1/10 12:58:39 网站建设