资讯专栏INFORMATION COLUMN

Android HybridApp开发——自定义Schema的URI应用

haobowd / 1825人阅读

摘要:今天只记录小的简单的东西,因为要睡觉了。具体使用请以自身需求为准。那么组装的时候,可以指定包名,然后指定名,然后增加传递的数据和。这样就很好的把一个跳转到某个应用某个页面的的行为用指定出来。方便应用和应用之间相互跳转。

今天只记录小的简单的东西,因为要睡觉了。

如果你想做一个Hybrid应用,也许有多种方式,也许使用PhoneGap,也许只使用WebView,也许在Native的某个页面嵌入一部分的WebView。

具体使用请以自身需求为准。那么今天说说最最轻量的一个方案:我们有这么个需求,有的页面需要使用 Native,有的页面需要使用WebView,同时,Native改变可能比较小,WebView的内容改动是很多的,因为WebView中呈现的内容在服务器端,因此它的好处就是不需要升级软件而直接为用户提供新功能。

那么基于这么一种业务需求,我们想到的其中一个办法就是使用自定义的Schema,使用一个统一的Schema管理器管理,对于不同的Schema我们利用Intent的一些特性,跳到我们所需要的Activity里,呈现我们所需要的内容即可。

那么我们这里用到了一个很小的组件类就是java.net.URI 这个组件,想必看见这个类必然会想到java.net.URL类吧。URI全称是Uniform Resource Identifier(通用资源标识符),URL这个类是Uniform Resource Locator(统一资源定位符)(摘自百度百科)。很多人可能混淆两个概念,其实只要只要URL是URI的子集即可,也就是说,相对来讲,URI的定义会更广泛抽象一些。

引用一个我们自定义Schema的一个URI例子

  

lwy://cn.com.zjseek.lwy/news?id=2&path=3

这里Schema,Location,Path,Query等都俱全了,那么有什么用呢?
Location可以指定一个包名,我们用java.net.URI对象的构造函数生成后,用getHost方法能获取到它的“主机”

URI uri = new URI("lwy://cn.com.zjseek.lwy/news?id=2&path=3");
System.out.println(uri.getScheme()); // lwy
System.out.println(uri.getHost());  // cn.com.zjseek.lwy
System.out.println(uri.getPath());  // /news
System.out.println(uri.getQuery()); // id=2&path=3

运行这段代码能得到每一部分的结果。
那么组装Intent的时候,可以指定包名(Host),然后指定Action名(path),然后增加传递的数据和Fragment(Query)。
这样就很好的把一个跳转到某个应用某个页面的的行为用URI指定出来。方便应用和应用之间相互跳转。

Intent intent = new Intent();
intent.setPackage(uri.getHost());
intent.setAction(uri.getPath());
...

这样的URI也非常适合在WebView中用标签进行跳转,最终方便了我们进行HybridApp的开发。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/85311.html

相关文章

  • android hybird 实现:定义schema

    摘要:若用实现,则体验上会相差不少。至此,因为本文中的重点,的实现方案及与交互方案。中的实现方式原理与中原生协议类似,通过拦截形式实现。可以通过自定义协议名称,然后中拦截这个,并解析其中参数与回调函数,调用方法,并实现回调。 android hybird 与h5 app区别 hybird 与h5 app是不一样的,以前对这两者理解有所误解,在实际开发中也并未真正采用hybird,而是使用h5...

    hoohack 评论0 收藏0
  • [前端] H5页检测手机是否安装app 相关流程

    摘要:近期公司需要针对分享流程进行优化,其中一点就是前端检测是否安装应用,来进行不同的判断下载或直接跳转到中。为回调函数,根据返回来判断是否安装。 近期公司需要针对分享流程进行优化,其中一点就是前端H5检测是否安装应用,来进行不同的判断(下载或直接跳转到app中)。原理很简单:创建一个iframe去打开uri。如果打开app成功网页进入后台,再切换回来时间会超过2.5s。利用时间去检测。下面...

    bawn 评论0 收藏0

发表评论

0条评论

haobowd

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<