Android webview 跳到app,Android Scheme
这里已经很多人写过了,我这里也就重复一次说说这个事情,通常我们的app 开发中会有这样的方式,
(1)使用使用webview 支持jscript 这样由网页访问本地的android的原生代码。
(2)第二种方式就是我们开发的有web 形式打开的网页,这里我们想去打开app,那么我们就可以通过使用scheme 的方式来去调用它。
协议介绍:
通常Scheme协议的方式是这样的。
Scheme . Host,relativePath,query 这几个部分。
比如我据个例子
Http://www.baidu.com/search_pic?keyword=”看雪”&namecode=1
这里 scheme就是 http
这里的host 就是 www.baidu.com
这里的path 就是search_pic
这里的query 就是keyword=”看雪”&namecode=1
开始
1.web 端网页(注意这个网页要求我们在服务器环境内打开,我自己在手机内把一个Html 网页放到存储卡内打开后,没有生效)
这是网页端代码.我这里网页只是有。(注意,除了scheme必须添加外,其他可以根据需求自行去加,比如加上host,path,query,如果你要在一个scheme 下添加多个跳转,那你需要加入多个host,同理,如果你是同一个scheme,和同一个host,那么你就要加多个path,来去区分他们。)
网页名字是 testjump.html
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>通过URL Scheme启动Android应用</title>
</head>
<body>
<form>
<a href="testApp://register"> 注册</a>
<a href="testApp://login"> 登录</a>
<a href="testApp://detail"> 详情</a>
<a href="testApp://list?keyword=日本"> 列表</a>
</form>
</body>
</html>
3.android 端配置要打开的app
android:launchMode="singleTask"
android:screenOrientation="portrait"
android:theme="@style/TranslucentThemeCompat"
android:windowSoftInputMode="adjustPan">
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<!-- 调转到搜索结果界面, by 猎户座-->
<data
android:scheme="testApp"
android:host="list"
/>
</intent-filter>
</activity>
<activity
4.我们在我们要测试的网页放在自己web服务器目录内,(如果前端已经把网页写好了,你只需要在浏览器访问地址打开那个网页就可以了),我自己搭建的服务器,phpStudy 工具一键安装就可以了。
5.打开网站跟目录
6.获取本地局域网的地址
在cmd里面输入ipconfig
7.在浏览器里面打开测试看能不能打开这个网页
8.把上面的链接发送到你的手机上,然后在手机浏览器里打开
(记住,最后是在同一个局域网内,比如你电脑的服务器链接的是 wifi 名字是wifi1,那么手机也链接wifi1)
9.在Android端的代码
//从web 调转到房源列表页面
void initSchemeResult(){
Intent intent = getIntent();
Uri uri = intent.getData();
if(uri==null){
return;
}
// 根据scheme 获取到传过来的 json 数据,然后解析结果。
/**
*/
String keyWord=uri.getQueryParameter("keyword");
if(TextUtils.isEmpty(keyWord)){
return;
}
doSearchKeyWord(keyWord);
}
10.结束.