Android webview 跳到app,Android Scheme

来源:互联网 发布:ubuntu 14.04 ant 编辑:程序博客网 时间:2024/06/02 18:30

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.结束.

 

 

 

 

 

 

 

 

 

原创粉丝点击