HTML页面中启动Activity

HTML页面中启动Activity

今天和朋友讨论一个问题,就是如何在HTML的网页中,启动我们自己的Activity.
这里要引用一句话:

发现一个问题的时候,解决的办法按目标-路径-资源的思维模式,找原因和问题有如下几条路径。

  • 一是拍脑袋,按自己的经验和判断,甚至是主观想象;
  • 二是去搜索引擎找关键字,逛各种技术论坛听技术大牛们怎么说,看各类技术文章抽取提炼;
  • 三是用一种可测量的工具或者方法发现问题

这个时候 ,我果断选择了2,然后查到了这篇文章:传送门—我是传送门.
读完这篇博客,我相信,实现这篇文章标题所描述的功能,不再是一件没有头绪的事。
所以,这里我要讲的是另外一件事情,就是我们在XML文件里添加的那一对<intetn-filter></intent-filter>
如下:

            <intent-filter>  
                <action android:name="android.intent.action.VIEW"/>     
                <category android:name="android.intent.category.DEFAULT"/>               
                <category android:name="android.intent.category.BROWSABLE"/>  
                <data android:scheme="znn"/>  
            </intent-filter>  

这一对intent-filter标签内,有1个action,2个category,1个data标签。其中 <data />标签中scheme是协议的意思,应该和我们html中超链接头部保持一致。这个标签比较容易理解,但是剩余的三个标签,虽然看起来经常打交道,但是对它们的功能或某种机制,一点都不了解。Ctrl+Q 的文档,也看不明了。于是,破墙去Android Developers,找到这些:

  • ACTION_VIEW
ACTION_VIEW
Use this action in an intent with startActivity() when you have some information that an activity can show to the user, such as a photo to view in a gallery app, or an address to view in a map app.
当你有一些在界面可以展示给用户的信息的时候,使用这个action.使用这个标签,表示你想要启动一个Activity.
  • CATEGORY_BROWSABLE
CATEGORY_BROWSABLE
The target activity allows itself to be started by a web browser to display data referenced by a link—such as an image or an e-mail message.
添加这个CATEGORY,Activity将允许被浏览器(包括WebView)启动
  • CATRGOTY_DEFAULT
    Set if the activity should be an option for the default action (center press) to perform on a piece of data.
    这个标签的解释很简单,一般默认添加。
    我尝试过,去掉这个标签,就无法从HTML中打开我指定的Activity。
    在《Android 开发艺术探索》这本书34页,我找到了答案,作者说,不含这个Category的Activity,是不能被隐式启动的

好了,就到这里。有问题,果然应该动手翻翻文档,你想要的,一般在文档里都能找到。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值