通过浏览器的链接启动Activity
来源:互联网 发布:免费域名和空间 编辑:程序博客网 时间:2024/06/03 15:04
推荐大家进入这篇博客:http://blog.csdn.net/mchenys/article/details/49557257
我们都知道打开Activity的方式有2种,即显示意图和隐式意图.那么如何实现通过手机浏览器点击某个链点就能打开手机中已经安装的app呢?通过隐式意图就能实现这个功能.
先来看一段html代码:
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="utf-8">
- <title>Document</title>
- <style type="text/css">
- a{
- font-size: 40px;
- }
- </style>
- </head>
- <body>
- <a href="app://launch/hello app">启动AppTerminalActivity</a>
- </body>
- </html>
代码很简单,就是一个a链接,目的是通过该a链接去启动目标app.其中app://对应的就是隐式意图的<data>标签的scheme属性.
再来看一段对应的目标Activity的隐式意图的定义:
- <activity android:name=".AppTerminalActivity">
- <intent-filter>
- <category android:name="android.intent.category.BROWSABLE" />
- <category android:name="android.intent.category.DEFAULT" />
- <action android:name="android.intent.action.VIEW" />
- <data android:scheme="app" />
- </intent-filter>
- </activity>
其中Android.intent.category.BROWSABLE就是表示可以通过浏览器打开的类别.
最重要的就是<data android:scheme="app" />,这里定义了数据的协议,当然还可以定义很多的属性,这里我们定义scheme就够用了.一定要对应上面的a链点的协议,即app://,后面可以附带需要传递给目标app的一些数据.
然后我们在目标activity中接收a链点点击后传递过来的数据,显示在TextView上.代码如下:
- /**
- * Created by mChenys on 2015/11/1.
- */
- public class AppTerminalActivity extends Activity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- TextView textView = new TextView(this);
- textView.setText(getIntent().getData().toString());
- setContentView(textView, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
- }
- }
效果图:
通过手机浏览器打开目标网页
点击启动就可以启动目标Activity了.
可以看到getData拿到了a链点的整个href的属性值.
当然除了scheme属性,我们还可以设置host和pathPrefix属性,分别表示为主机名和路径前缀
- <intent-filter>
- <category android:name="android.intent.category.BROWSABLE" />
- <category android:name="android.intent.category.DEFAULT" />
- <action android:name="android.intent.action.VIEW" />
- <data
- android:host="blog.csdn.net"
- android:pathPrefix="/mChenys"
- android:scheme="app" />
- </intent-filter>
1 0
- 通过浏览器的链接启动Activity
- 通过浏览器链接启动本地activity
- 通过浏览器链接启动本地Activity
- 如何通过浏览器链接启动本地 Activity
- 通过浏览器链接启动本地Activity
- 通过浏览器访问Activity
- 浏览器启动activity
- Android 通过Preference启动新的Activity
- 通过广播启动另一个应用的Activity
- 通过Intent启动其他APP的Activity
- Android 通过URL scheme 实现点击浏览器中的URL链接,启动特定的App,并调转页面传递参数
- Android 通过URL scheme 实现点击浏览器中的URL链接,启动特定的App,并调转页面传递参数
- Android 通过URL scheme 实现点击浏览器中的URL链接,启动特定的App,并调转页面传递参数
- 通过Activity启动其他Activity
- 通过packgername 启动activity
- 通过浏览器打开本地Activity
- 通过手机浏览器跳转到指定的Activity
- Android-在浏览器启动Activity
- 如何从当前spring容器中获得bean?
- Chapter 3: Numeric Types & Operations
- aaa
- jquery on事件
- cmake 编译 ogre3D(version1.9) for android
- 通过浏览器的链接启动Activity
- mongoengine|mongodb|flask_sqlalchemy简单使用对比
- SAP的服务收费怎么算的
- Windows系统下系统变量JAVA_HOME的设置,环境变量JAVA_HOME不能设置为多个Java的多个安装路径
- php面试题目(中等水平)
- Android Framework探索之路——类的探索列表(随时更新)
- Qt信号与槽之查看信号来源qobject_cast<类型*>(sender())
- js中0<-->1,0,1互转
- Nmap源码分析(基本框架)