转载请注明作者AndroidMsky和出处:
http://blog.csdn.net/AndroidMsky/article/details/54316327
效果:
这篇算兴趣加技术篇,和之前的抢红包博文和接起QQ电话博文一样都是往其他APP里面搞事情!!!
代码传送门:
https://github.com/AndroidMsky/htlmStartApp
我们知道比如知乎,大众点评等一些h5的网页是可以直接调起原声应用的,有一些亲儿子可以在微信的内置浏览器中直接搞出来。下面介绍一下最最最基础的调用方法吧。
在activity的静态声明中:
<activity android:name=".MainActivity">
<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="host"
android:scheme="scheme" />
intent-filter>
activity>
主要是host 和scheme这两个参数,自己起个名字就好了,不过scheme不要起http https这种关键字的名字会让浏览器瞬间懵逼的。
然后再activity中获取输入参数:
Intent intent = getIntent();
if (intent != null) {
String data = intent.getDataString();
if (data != null) {
Toast.makeText(this, data, Toast.LENGTH_LONG).show();
}
}
可能还有更细致的获取方法就不再赘述了。
APP这里就准备好了,然后就要在html5中搞事情了,其实很好搞,移动端工程师具备一定的html知识是必不可少的。
="scheme://host/dhahahh”>启动我们的应用程序
一个a标签就可以搞事情了。
看到我们点击我们的A标签我们自己的程序启动了,并且读取到我们输入的参数了。如果是在项目中就可以做相应处理了。
好了,这不是搞事情,我要跟知乎一起搞事情(虽然之前仿知乎嵌套滑动搞过一次了),好吧,我第一反应就分享出一个知乎的链接,然后用chrome去审查元素:
在APP内打开是个button,并没有直接给上链接,因为知乎做了更多的东西,比如你没安装知乎,他会跳转到知乎app的下载页面。所以不是一个标签中的href那么简单,好吧那么就去js中找到这个button绑定的方法(请允许安卓工程师大胆想象)。使出我吃奶的前端技术栈,按照那个button的class去搜索一下吧
确实在这附近,但是我觉得继续研究这端js我要毁一生了,前端汪你们上我先撤退了。
转移思路吧,接受这种调起activity的参数,不是在Manifest.xml中定义的么,那我就不怕了,直接下个知乎apk反编译看一下就好了。于是下了apk,并直接拖入AS的界面中(向强大的AS致敬):
配合显示当前页面activity的命令
adb shell dumpsys activity | grep "mFocusedActivity"
搜索关键词scheme我们很容易找到接受参数的位置:
事实就是这么的简单,我们找到了相应的参数,接下来写h5代码就好了:
<a href="zhihu://questions/53799426">启动知乎a>
随便找了个问题就调了起来:
成功调起并传参。
(这些html都是用浏览器打开的哈)
附上完整html:
<html>
<head>
<meta charset="UTF-8">
<title>AndroidMskytitle>
head>
<body>
<p>启动原声应用p>
<a href="zhihu://questions/53799426">启动知乎a>
<a href="scheme://host/dhahahh">启动我们的应用程序a>
body>
html>
说几句鸡汤,如果你是一个对编程感兴趣的人其实程序的世界有很多玩耍的东西,可以做游戏,可以写自动化的东西等等。如果你对写代码已经十分厌烦,不妨去接触一下有趣的东西,大家一起搞搞事情。可能你当年对程序那种热情会回来的。说我们是码农也好说我们是猿类也罢,我们自己搞好玩的事情,自娱自乐谁能挡我,大喊一声还有谁~。
欢迎关注作者。欢迎评论讨论。欢迎拍砖。
欢迎star,Fork我的github,喜欢的也可以Follow。也算对作者的一种支持。
本文Github代码链接
https://github.com/AndroidMsky/htlmStartApp
欢迎加作者自营安卓开发交流群:
308372687