先说实现步骤再说原理:
使用步骤
一,首先要给你要打开的应用中的activity设置过滤器(在清单文件里设置)
以JumpActivity为例
如下面的: <intent-filter> 中就是所需过滤器
[html]
view plain
copy
- <activity android:name=".JumpActivity" >
- <intent-filter>
- <action android:name="" />
- <category android:name="" />
- <category android:name="" />
- <!--下面所设置的质需要和html端对调-->
- <!--在data里设置了 scheme和host,则该Activity可以接收和处理类似于 "sharetest://data/XXX"的链接-->
- <data
- android:host="data"
- android:scheme="sharetest" />
- </intent-filter>
- </activity>
二,在JumpActivity中做打开后的处理,用来接收外部的跳转
[java]
view plain
copy
- public class JumpActivity extends Activity{
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- // TODO Auto-generated method stub
- super.onCreate(savedInstanceState);
- Intent intent = getIntent();//在这个Activity里,我们可以通过getIntent(),来获取外部跳转传过来的信息。
- String data = ();//接收到网页传过来的数据:sharetest://data//
- String[] split = ("data/");//以data/切割data字符串
- url = split[1]; //就得到:/(这就是我们需要网页传给我们的数据)
- 。。。然后我们再通过网页打开app的同时就可以用获得的url数据做一些我们需要做的处理
- 比如你在微信里浏览网页时打开自己的安卓app应用的同时,加载一个app内的网页
- }
- }
三,我们需要找到html前端,让他们在网页中加入:
<iframe src="" style="display:none"></iframe>
如下:
[html]
view plain
copy
- <!DOCTYPE html>
- <html>
- <body>
- <iframe src="sharetest://data//" style="display:none"></iframe>
- </body>
- </html>
将放到Assets目录下,在代码里调用Webview加载该Html文件,代码如下:
/*网页打开app*/
[java]
view plain
copy
- public class H5ToAppActivity extends Activity {
- private String url;
- private WebView webview;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(.activity_h5_app);
- webview = (WebView) findViewById(.webviewh5);
- url = "file:///android_asset/";
- WebSettings wSet = ();
- (true);
- (url);
- }
- }
这样执行以上代码时就可以打开对应的app了。