扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
自定义Dialog。
成都创新互联专业提供四川移动机房托管服务,为用户提供五星数据中心、电信、双线接入解决方案,用户可自行在线购买四川移动机房托管服务,并享受7*24小时金牌售后服务。
1、编写自定义布局。
2、继承Dialog,覆盖构造方法。
3、覆盖onCreate(),初始化控件。以上就是Android调用其他的布局显示在对话框中的方法。
intent-filter详解
前提: 本人通过手机默认浏览器及html查看器都可以成功调起本地app
调起App时,获取到html中的内容如下,该内容被封装到Intent中,并通过 intent.getData()获取(使用Uri表示),我们通过uri.getQueryParameter()获取具体字段的值。
1.当App已启动时,也可以调起app,只是获取不到Intent中的数据。我的大概理解是Android中Activity启动时通过Intent在传递数据,如果我们的Activity已经启动,没有再次获取Intent对象,android:launchMode="singleInstance";这个需要其它同学解答下。
2.为什么我把Activity启动模式设置为android:launchMode="singleInstance"?因为如果我们使用默认的standard模式,会发现被调起的app的Activity运行在浏览器的任务栈中了。这是Activity启动模式对调起App的影响。
3.有什么不足之处,希望大家指正。谢谢
Android中的自定义的 URL Scheme 是一种页面内跳转协议,也可以被称为 URLRouter ,就是通过类似打开网页的方式去通过路由打开一个Activity,而非直接通过显式Intent方式去进行跳转。这样隐式intent的方法跳转好处如下:
上文已经说过, URL Scheme 是就通过类似打开网页的方式去通过路由打开一个Activity,其协议格式和我们打开网页输入的网址类似。
一个完整的完整的URL Scheme协议格式由scheme、host、port、path和query组成,其结构如下所示:
其中scheme既可以是Android中常见的协议,也可以是我们自定义的协议。Android中常见的协议包括content协议、http协议、file协议等,自定义协议可以使用自定义的字符串,当我们启动第三方的应用时候,多是使用自定义协议。
如下是一个自定义协议的URI:
通过上面的路径 Scheme、Host、port、path、query全部包含:
URL Scheme 的使用方法简要言之就是先在manifest中配置能接受Scheme方式启动的activity;当需要调用时,将Scheme协议的URi以Data的形式加入到Intent中,隐式调用该activity。
1). 在AndroidManifest.xml中对activity 标签增加intent-filter设置Scheme
上面的设置中可以看到,MainActivity包含多个intent-filter设置,第一个是正常的启动,也就是在应用列表中启动;第二个是通过 URL Scheme 方式启动,其本身也是隐式Intent调用的一种,不同在于添加了data属性,定义了其接受 URL Scheme 协议格式为 urlschemel://auth_activity
这里需要说明下, URL Scheme 协议格式中,组成URI的这些属性在data 标签中都是可选的 ,但存在如下的依赖关系:
当我们将intent对象中的Uri参数与intent-filter中的data标签指定的URI格式进行对比时,我们只对比intent-filter的data标签指定的部分,例如:
需要注意的是,intent-filter的data标签在指定path的值时,可以在里面使用通配符*,起到部分匹配的效果。
2). 使用URL启动Activity
当然可以在网页中调用
或者是在JS中调用
3.)如何判断URL Scheme是否有效
有时候需要把一些辅助性的、较为独立的APP在Home Launcher中隐藏起来,只允许一些特定的APP调用。这个时候,我们可以利用 URL Scheme 协议来做到这一点,设置AndroidManifest.xml中对activity 标签如下
因为Home Launcher列出的应用图标要求必须有Activity同时满足
上面的配置中有多余的category和data限制存在,所以并不匹配,不会在Home Launcher出现,但是可以使用 URL Scheme 来启动。
这样就可以将一组APP设置一个统一的入口,然后根据实际需要在调用不同子APP,即所谓的 APP业务组件化 , URL Scheme 在其中有着重要的作用,更进一步讨论会在以后的文章中呈现,敬请期待。
参考文献:
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流