android:如何做到点击链接,自己的程序可以响应?


众所周知,在网页里,或者在mail里,点击超链接,就会在浏览器里,打开该页面,
那么,怎样做到,点击链接,就会启动我想启动的程序呢?注意,这是在android里面。


我知道就是,在自己的程序里面写个broadcast reciever.监听事件。然后在用户 点击该链接 这个事件里,就可以sendbroadcast,让自己程序来响应。
但是,问题是,我如何捕获到用户点击链接这个链接?

20 个解决方案

#1


把要点击的字符串做成html的a href格式就可以。

#2


    <string name="link_text_manual"><b>text2:</b> This is some other
      text, with a <a href="http://www.google.com">link</a> specified
      via an &lt;a&gt; tag.  Use a \"tel:\" URL
      to <a href="tel:4155551212">dial a phone number</a>.
    </string>

ApiDemos里有的

#3


纯Java代码也可以:
         TextView t3 = (TextView) findViewById(R.id.text3);
        t3.setText(
            Html.fromHtml(
                "<b>text3:</b>  Text with a " +
                "<a href=\"http://www.google.com\">link</a> " +
                "created in the Java source code using HTML."));
        t3.setMovementMethod(LinkMovementMethod.getInstance());

#4


我想问的是,如果我在浏览器里,或者在mail里面,点击了个链接。他会自动启动我的程序,或者说跳出个对话框,让我选择用哪个程序打开。
就像UC一样,如果你装了UC的话,好像,只要你是点击链接的话,都会给你选择,让你用Browser打开,还是用UC打开。

#5


也在找這個問題的答案,關注下!

#6


猜测一下^_^

点击链接并打开某个应用程序是由链接中href属性的值所决定的,例如<a href="mailto:abc@.com">这个链接会启动邮箱来发邮件,所以这种行为是由宿主处理的(网页浏览器、网页控件等),我们可以向宿主程序“注册”自己的url规则和处理程序(如<a href="execute:qq.exe">),这样,这种URL就被俺们处理了。在IE中,这应该是通过ActvieX实现的。我想,在android中应该也差不多吧。有空看看。

#7


不是有个在xml文件里选择配置一个属性 aoto什么的 然后在文字的时候要注意一下什么格式
记得在哪看见过 不知道有没有用  关注

#8


那就看如何截获点击链接,然后弹出一个PopupWindow可以吧?
关注ing

#9


自定义action,你是自己实现URL协议是把,没啥,过去我开发pc上的时,腾讯的有个TXPlatform,就是tencent://xxxxx

#10


额。搞定了。
在自己程序Activity里面加个
<intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.BROWSABLE"/>
                <category android:name="android.intent.category.DEFAULT" />
                <data android:scheme="http" />
                <data android:scheme="https" />
</intent-filter>
然后,这个ActivitY就可以像UC一样响应超链接了。(哈哈,这个是我反编译UC看到的)
楼上也说的对,我们自己如果有别的schema,就自己定义个就OK了。

#11


是啊,我看到时候楼上几位的回复不着边,看着急,没啥,这个比较弱智,哈哈

#12


我觉得用javascript中的js文件调用 可以满足楼主呢
这个东西 直接加在.xml中就可以了

#13


引用 10 楼 sjm19880409 的回复:
额。搞定了。
在自己程序Activity里面加个
<intent-filter>
  <action android:name="android.intent.action.VIEW" />
  <category android:name="android.intent.category.BROWSABLE"/>
  <category android:name="android.in……

刚才到在javaeye上看到一个使用<data>属性创建超链接的,没看明白就放过了。

#14


引用 10 楼 sjm19880409 的回复:
额。搞定了。
在自己程序Activity里面加个
<intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.BROWSABLE"/>
       ……

需要写BroadcastReceiver吗?

#15


引用 11 楼 drsmart 的回复:
是啊,我看到时候楼上几位的回复不着边,看着急,没啥,这个比较弱智,哈哈


这个不用反编译,多看看android的browser的源码,browser的androidmanifest.xml写的很清楚的

#16


引用 14 楼 helldance 的回复:
引用 10 楼 sjm19880409 的回复:

额。搞定了。
在自己程序Activity里面加个
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE"/>
……

需要写Br……


本来我以为要broadcast,但实际上不用。直接用activity就可以。
还有,用broadcast,好像不work.只能用activity.求高手分析……

#17


引用 15 楼 drsmart 的回复:
引用 11 楼 drsmart 的回复:
是啊,我看到时候楼上几位的回复不着边,看着急,没啥,这个比较弱智,哈哈


这个不用反编译,多看看android的browser的源码,browser的androidmanifest.xml写的很清楚的


谢谢你的建议,我会记住的。

#18


貌似没什么用

#19


看看这篇文章是不是你想要的
http://orgcent.com/android-textview-no-underline-hyperlink/

#20


引用 13 楼 ameyume 的回复:
引用 10 楼 sjm19880409 的回复:
额。搞定了。
在自己程序Activity里面加个
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE"/>
<category and……

这个我也看过 但是没成功 这个哥们就这样加了两个scheme 根本没有涉及对其他程序的定义么 那么我点击连接咋可能跑到另外一个程序中呢 求解。

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
© 2014-2019 ITdaan.com 粤ICP备14056181号