android中通过浏览器启动nativeAPP
今天用uc浏览器上淘宝,当我点击购买的时候,系统会自动跳转并打开本地的淘宝app的对应页面,于是在网上研究了一下,是这么回事:本地的app和html网页是有一定的约束和规范的,也就是说,我在html网页上的超链接的某一些内容和本地app中的需要打开的activity所设置的action是一样的。我们来看一一个栗子:
新建一个launcher.html
<html> <body> <a href="testapp://haha/open?name=lisi&age=30&from=ucbroswer">启动apk</a> </body> </html>可以看到launcher.html的内容很简单,就是一个简单的超链接,这里我们主要用于启动app的连接是:"testapp://haha/open"
注意这里的"testapp://haha/open"就是刚才说的,必须遵守nativeapp中的action中声明的一些规范,另外"name=lisi&age=30&from=ucbroswer"是我们从html向native app中传递的值。
我们启动MainActivity.java这个类,因此需要该工程的androidManifest.xml中增加对该类声明的action,这个action中就是规范html中的跳转连接的写法,如下:
<activity android:name="com.example.htmllauncher.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </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:host="haha" android:pathPrefix="/open" android:scheme="testapp" /> </intent-filter> </activity>我们可以看到增加了这样一个action标签:
<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:host="haha"
android:pathPrefix="/open"
android:scheme="testapp" />
</intent-filter>
其中<data>标签,就是对html的规范,再来看看我们html中的跳转连接,是这样写的:testapp://haha/open ,这样就可以通过该超链接跳转到该MainActivity当中了。
好了,现在通过MainActivity如何获得html当中传递过来的数据呢??看下面的代码:
Intent i_getvalue = getIntent(); String action = i_getvalue.getAction(); if(Intent.ACTION_VIEW.equals(action)){ Uri uri = i_getvalue.getData(); if(uri != null){ String name = uri.getQueryParameter("name"); String age= uri.getQueryParameter("age"); String from = uri.getQueryParameter("from"); Toast.makeText(MainActivity.this,"name is :"+name+"==age is :"+age+"==from is :"+from,Toast.LENGTH_SHORT).show(); } }好了,这样就完成了html打开本地app并且传递参数的简单功能,希望大家喜欢。。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。