博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android 通过网页打开自己的APP(scheme)
阅读量:6866 次
发布时间:2019-06-26

本文共 1673 字,大约阅读时间需要 5 分钟。

分类: 

通过用手机的浏览器(内置,第三方都可)访问一个网页,实现点击一个链接启动自己的应用,并传递数据。

首先在Mainifest文件里面对要启动的Activity添加一个过滤器。

 

[java] 
 
  1. <activity  
  2.             android:name="com.example.helloworld.MainActivity"  
  3.             android:label="@string/app_name" >  
  4.             <intent-filter>  
  5.                 <action android:name="android.intent.action.MAIN" />  
  6.   
  7.                 <category android:name="android.intent.category.LAUNCHER" />  
  8.             </intent-filter>  
  9.             <intent-filter>  
  10.                 <action android:name="android.intent.action.VIEW"/>     
  11.                 <category android:name="android.intent.category.DEFAULT"/>               
  12.                 <category android:name="android.intent.category.BROWSABLE"/>  
  13.                 <data android:scheme="znn"/>  
  14.             </intent-filter>  
  15.         </activity>  
在MainActivity接收数据:

 

 

[java] 
 
  1. public class MainActivity extends Activity implements View.OnClickListener{  
  2.   
  3.     @Override  
  4.     protected void onCreate(Bundle savedInstanceState) {  
  5.         super.onCreate(savedInstanceState);  
  6.         setContentView(R.layout.activity_main);  
  7.   
  8.         Intent intent = getIntent();  
  9.         String scheme = intent.getScheme();  
  10.         Uri uri = intent.getData();  
  11.         System.out.println("scheme:"+scheme);  
  12.         if (uri != null) {  
  13.             String host = uri.getHost();  
  14.             String dataString = intent.getDataString();  
  15.             String id = uri.getQueryParameter("d");  
  16.             String path = uri.getPath();  
  17.             String path1 = uri.getEncodedPath();  
  18.             String queryString = uri.getQuery();  
  19.             System.out.println("host:"+host);  
  20.             System.out.println("dataString:"+dataString);  
  21.             System.out.println("id:"+id);  
  22.             System.out.println("path:"+path);  
  23.             System.out.println("path1:"+path1);  
  24.             System.out.println("queryString:"+queryString);  
  25.         }  
  26.           
  27.     }  
  28. }  

 

写一个最简单的网页:

 

[html] 
 
  1. <href="znn://aa.bb:80/test?p=12&d=1">test</a>  

 

测试地址:

 

测试结果:

scheme:znn

host:aa.bb
dataString:znn://aa.bb:80/test?p=12&id=1
id:1
path:/test
path1:/test

queryString:p=12&d=1

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

你可能感兴趣的文章
ADMT3.2域迁移之Server2003至Server2012系列(七)安装ADMT3.2
查看>>
DISPLAY环境变量的作用
查看>>
006.递归和分治思想
查看>>
org.springframework.data.mapping.PropertyReferenceException: No property xxxx found for type Xxxx
查看>>
Gson解析json数据 亲自测试可用
查看>>
我与监控宝之间的点点滴滴
查看>>
delphi 数据库显示的TDBGrid配置
查看>>
对51CTO的看法
查看>>
userenv和sys_context函数
查看>>
是否会回到起点.回忆只能是回忆
查看>>
原创数据结构算法Flash动画演示课件-Action Script(AS)脚本实现
查看>>
基于Mysql主从同步的读写分离
查看>>
BA 的岗位要求3
查看>>
基于Hyper-V3.0搭建XenDesktop7之九 部署虚拟应用之模板准备
查看>>
JS如何捆绑TypeScript声明文件
查看>>
samba服务配置
查看>>
我的友情链接
查看>>
MyBatis之ResultMap标签
查看>>
[转]WinXP、Win7脚本自动加域及用户资料迁移
查看>>
使用链路聚合进行负载分担
查看>>