摘要:今天只记录小的简单的东西,因为要睡觉了。具体使用请以自身需求为准。那么组装的时候,可以指定包名,然后指定名,然后增加传递的数据和。这样就很好的把一个跳转到某个应用某个页面的的行为用指定出来。方便应用和应用之间相互跳转。
今天只记录小的简单的东西,因为要睡觉了。
如果你想做一个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()); ...
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/85311.html
摘要:若用实现,则体验上会相差不少。至此,因为本文中的重点,的实现方案及与交互方案。中的实现方式原理与中原生协议类似,通过拦截形式实现。可以通过自定义协议名称,然后中拦截这个,并解析其中参数与回调函数,调用方法,并实现回调。 android hybird 与h5 app区别 hybird 与h5 app是不一样的,以前对这两者理解有所误解,在实际开发中也并未真正采用hybird,而是使用h5...
摘要:近期公司需要针对分享流程进行优化,其中一点就是前端检测是否安装应用,来进行不同的判断下载或直接跳转到中。为回调函数,根据返回来判断是否安装。 近期公司需要针对分享流程进行优化,其中一点就是前端H5检测是否安装应用,来进行不同的判断(下载或直接跳转到app中)。原理很简单:创建一个iframe去打开uri。如果打开app成功网页进入后台,再切换回来时间会超过2.5s。利用时间去检测。下面...
阅读 2191·2021-09-07 09:58
阅读 3365·2019-08-30 14:07
阅读 1269·2019-08-29 12:32
阅读 636·2019-08-29 11:06
阅读 3553·2019-08-26 18:18
阅读 3563·2019-08-26 17:35
阅读 1355·2019-08-26 11:35
阅读 581·2019-08-26 11:35