此文章已收入Android偶遇杂症合集(持续更新)

1、Scheme的作用,浏览器唤起APP

常见在手机浏览器打开某个网站,会有个 App 内打开的按钮,点击直接打开APP且跳转到该详情页,用的基本都是Scheme。Scheme的基本使用如下:

<activity android:name=".MainActivity">    <!-- 需要添加下面的intent-filter配置 -->    <intent-filter>        ...        <data            android:scheme="myscheme"            android:host="myhost"            android:port="1024"            android:path="/main" />    </intent-filter></activity>

在web页面添加一个点击事件跳转:

<a href="myscheme://myhost:1024/main?key1=value1&key2=value2">open app with Uri Schemea>

被唤起的MainActivity中,可以在onCreate(APP未打开)和onNewIntent(APP已打开)方法中拿到跳转的链接:

Intent intent = getIntent();if (null != intent && null != intent.getData()) {    Uri uri = intent.getData();    Log.e(TAG, "uri=" +uri);    String scheme = uri.getScheme();    String host = uri.getHost();    int port = uri.getPort();    String path = uri.getPath();    String key1 = uri.getQueryParameter("key1");    String key2 = uri.getQueryParameter("key2");    Log.e(TAG, "scheme=" + scheme + ",host=" + host            + ",port=" + port + ",path=" + path            + ",query=" + uri.getQuery()            + ",key1=" + key1 + ",key2=" + key2);}

打印消息如下:

uri=myscheme://myhost:1024/main?key1=value1&key2=value2scheme=myscheme,host=myhost,port=1024,path=/main,query=key1=value1&key2=value2,key1=value1,key2=value2

2、遇到的不生效问题原因及解决办法

在应用中增加了Scheme,兴致勃勃启动浏览器按下核弹发射按钮,结果气氛逐渐尴尬。。。

问题出在哪呢?仔细比对了链接地址、AndroidManifest的配置,苍天啊,分明是一样的,令人崩溃!!!

然后一个偶然的机会,用了AS自带的Android模拟器里的web test APP开启这个链接,打开了一个新的页面,显示了设置的链接地址,问题的原因找到了!!!

我在web页面中设置的链接为MyScheme://MyHost,点开的页面显示的链接是myshceme://myhost,神奇的事情,搜索一下发现了一篇文章,这位前辈和我遇到了一样的情况,文章链接如下:

H5无法调起android app 的坑之 scheme 大小写

最终结果就是,Scheme链接千万别用大写字母,包括scheme、host、port、path。

更多相关文章

  1. Android上最好的第三方浏览器有哪些不错的功能?
  2. Android超炫图片浏览器代码
  3. iPhone和Android智能手机浏览器判断分辨率问题
  4. Android WebView加载https页面不能正常显示资源问题
  5. 移动开发 - Android - 实现两个页面(Activity)的简单跳转(Intent
  6. Android跳转页面的基本方式
  7. Andorid 文件浏览器简易实现
  8. android 页面停几秒后跳转
  9. Android 仿微信之(二)--主页面实现篇

随机推荐

  1. python使用urlopen需要导入什么库
  2. Python -在文本文件中添加日期戳
  3. Django反向url与参数到基于类的视图
  4. Python爬虫-尝试使用人工和OCR处理验证码
  5. leet240. 搜索二维矩阵 II
  6. re表达式中单引号内的双引号(python)[dupli
  7. Python基础 条件判断和循环
  8. Python爬虫之post请求
  9. Python3 基本数据类型
  10. 【python 编程】网页中文过滤分词及词频