一、启动android默认浏览器
“专业、务实、高效、创新、把客户的事当成自己的事”是我们每一个人一直以来坚持追求的企业文化。 成都创新互联公司是您可以信赖的网站建设服务商、专业的互联网服务提供商! 专注于成都做网站、网站设计、软件开发、设计服务业务。我们始终坚持以客户需求为导向,结合用户体验与视觉传达,提供有针对性的项目解决方案,提供专业性的建议,创新互联建站将不断地超越自我,追逐市场,引领市场!
在Android程序中我们可以通过发送隐式Intent来启动系统默认的浏览器。如果手机本身安装了多个浏览器而又没有设置默认浏览器的话,系统将让用户选择使用哪个浏览器来打开连接。关于Intent的更多内容请参考《常用Intent》
示例1
Intent intent =newIntent();
intent.setAction("android.intent.action.VIEW");
Uri content_url =Uri.parse("");
intent.setData(content_url);
startActivity(intent);
这样子,android就可以调用起手机默认的浏览器访问。
二、启动指定浏览器
在Android程序中我们可以通过发送显式Intent来启动指定的浏览器。
启动Android原生浏览器
示例2
Intent intent =newIntent();
intent.setAction("android.intent.action.VIEW");
Uri content_url =Uri.parse("");
intent.setData(content_url);
intent.setClassName("com.android.browser","com.android.browser.BrowserActivity");
startActivity(intent);
只要修改以intent.setClassName("com.android.browser","com.android.browser.BrowserActivity");
中相应的应用程序packagename 和要启动的activity即可启动其他浏览器来
uc浏览器":"com.uc.browser", "com.uc.browser.ActivityUpdate“
opera浏览器:"com.opera.mini.android", "com.opera.mini.android.Browser"
qq浏览器:"com.tencent.mtt", "com.tencent.mtt.MainActivity"
android中的scheme是一种页面内跳转协议,是一种非常好的实现机制,通过定义自己的scheme协议,可以非常方便跳转app中的各个页面;通过scheme协议,服务器可以定制化告诉App跳转那个页面,可以通过通知栏消息定制化跳转页面,可以通过H5页面跳转页面等。
客户端应用可以在服务端注册一个URL Scheme,该Scheme用于从浏览器或其他应用启动本应用。通过指定的URL字段,可以让应用在被调起后直接打开某些特定界面,比如商品详情页,活动详情页等。也可以执行某些特定的动作,如完成支付等。也可以在应用内通过html页来直接调用显示app内的某个界面。综上URL Schema使用场景大致分以下几种:
一个完整的Scheme的协议格式由 scheme、userInfo、host、port、path、query和fragment 组成。结构如下:
scheme://是固定的格式。userInfo@ 可以省略,host 是必须的。port 、query 和 fragment 也是可以省略的。
其中scheme既可以是Android已经定义好的协议,也可使用我们自定义的。Android 常见的scheme 协议有:content 、file、http 等。如果我们自定义协议就可以随意使用一些字符串来限定协议。当然最好是有一定含义的字符串。如下面的协议:
首先配置需要跳转的Activity,Mainifest文件配置如下:
SchemeActivity
在网页中调用:
运行结果如下:
其他运用方式都基于样例,源码地址: URL_SchemeDemo
方式一:包名+特定Activity路径拉起(这里进去就是想到达的指定Activity)
方式二:采用包名拉起(这里就是进去启动页)
具体logcat错误是:
java.lang.SecurityException: Permission Denial: starting Intent { act=android.intent.action.MAIN cmp=com.example.mykotlindemo/.main.MainActivity (has extras) } from ProcessRecord{c4e43b9 9825:com.kc.mvvmcomponent/u0a541} (pid=9825, uid=10541) not exported from uid 10563
原因是,没有设置另一个app可被其他组件启动,需要在要被启动的指定Activity中设置: android:exported="true"
表明当前 activity 能否被另外一个Application 的组件启动,true允许启动,false不允许。默认是false。注意:该属性是四大组件都拥有的。
什么是 URL Scheme?
转自:
稍稍记录一下
android中的scheme是一种页面内跳转协议。
通过定义自己的scheme协议,可以非常方便跳转app中的各个页面;
通过scheme协议,服务器可以定制化告诉App跳转到APP内部页面。
之前项目都是我们客户端和服务器端用自定义json串的形式来告诉客户端如何跳转,这种方式要手动解析字段,有点麻烦。然而scheme协议自带字段解析,非常之方便,后面我们就放弃了json解析的方式。
Scheme协议在Android中使用场景
H5跳转到native页面
客户端获取push消息中后,点击消息跳转到APP内部页面
APP根据URL跳转到另外一个APP指定页面
利用scheme协议跳转的一个完整实例
在Mainefest配置文件中配置需要用scheme协议跳转的Activity
模拟从网络中获取scheme协议的url
获取scheme协议参数
1.跳转到系统的辅助功能界面
2. 跳转到添加帐户界面
3.跳转到系统的包含飞行模式的界面
4.跳转到系统的更多连接或其它连接界面
5.跳转到系统的APN设置界面
6.根据包名跳转到该app的应用信息界面
7. 跳转到系统的开发者选项界面
8.跳转到系统的应用管理界面(默认应用界面)
或
9.跳转到系统的应用管理界面(全部界面)
10.跳转到系统的蓝牙管理界面
11.跳转到系统的SIM卡和网络管理界面
12.跳转到系统的语言和时间管理界面:
或
13.跳转到系统的关于手机界面:
14.跳转到系统的显示和亮度界面
15.跳转到系统的互动屏保界面(API=18)
16.跳转到系统的存储和备份管理界面
或
或
17.跳转到系统的语言选择界面
18.跳转到系统的定位服务界面
19.跳转到系统的网络运营商界面
20.跳转到系统的NFC共享界面(需要手机支持NFC)
21.跳转到系统的NFC设置界面(需要手机支持NFC且API=16)
22.跳转到系统的安全设置界面
23.跳转到系统的设置界面
24.跳转到系统的声音设置界面
25.跳转到系统的账号界面
26.跳转到系统的个人字典界面
27.跳转到系统的IP设置界面
28.跳转到系统的WLAN界面