Cordova插件:InAppBrowser
版权声明:本文为博主原创文章,转载请注明出处
一、应用场景
我们在做cordova app开发的时候,可能会经常遇到这种需求。比如在你的app中,你想打开一个URL,但是又不想跳转到系统的浏览器去打开,而是希望直接在app中打开,这个时候就要用到这个插件了。 它会直接在我们的app中生成一个浏览器对象并打开你的网页。
二、添加插件
1. 如果你的项目是cordova原生项目,也就是说包含CordovaLib,可以通过命令去安装插件的,那你可以直接进入项目下面,运行:
cordova plugin add cordova-plugin-inappbrowser
这样inappbrowser插件就添加到我们的项目中了。
2.如果你的项目是改动后的cordova项目,估计大部分公司的cordova项目是改动后的。不可以直接用命令安装, 这个时候就要去手动添加这个插件了。
手动添加当然也很简单,但是你需要先获得这个插件,你可以通过命令去建一个cordova原生项目(参考我的另一篇文章:Cordova入门系列(一)创建项目)。创建好这个项目我们就可以用命令添加inappbrowser插件了。参考上面步骤1。这样的话我们就获取到了这个插件。
接着我们要将这个插件手动添加到我们的公司或自己的项目下面。我们有5处地方需要改:
1). 打开我们创建的原生cordova项目(并且安装了inappbrowser插件)。将src下面的org.apache.cordova.inappbrowser复制到我们自己的项目的src下面。
2). 将assets/www/plugins/cordova-plugin-inappbrowser,复制到我们自己项目下的assets/www/plugins/下面。
3). 修改assets/www/cordova_plugins.js,添加对应的inappbrowser的信息。
4). 修改res/xml/config.xml,添加对应的inappbrowser的<feature />信息。(3.4步可以参考你创建的那个原生cordova项目下面这两个文件都是什么信息。)
5). 将res下面的资源图片,复制到我们自己的项目下面。
最近做我们公司的项目,使用这个插件的时候,添加进去后(手动添加的,并不是通过命令添加的),效果没实现,InAppBrowser点击后会自动闪退。发现是由于资源图片没添加导致的。添加drawable/drawable-hdpi/.....下的图片(3个,next, previous, remove)到对应的文件夹即可。
三、使用这个插件
使用方法很简单,只需要在我们的js中通过window.open()或者cordova.inappbrowser.open()即可。
cordova.InAppBrowser.open(URL,target,options)
window.open(URL,target,options)
1. URL参数为浏览器跳转的地址;
2. target的参数有三种:
_self:如果URL地址在WhiteList中,则用Cordova的WhiteList将其打开;
_blank:直接在App中将其地址打开;
_system:则是用手机默认浏览器将新页面打开;
3. options参数包含以下信息:
location:设置为yes或no来打开或关闭插件的locationbar;
hidden:设置为yes则加载出页面但不显示;设置为no则正常加载页面;
Android独有属性:
zoom:设置为yes则显示缩放浏览器页面的按钮,设置为no则不显示缩放按钮;
hardwareback:设置为yes则调用Android返回键回到前一界面,设置为no则返回键为退出浏览器页面;
iOS独有属性:
closebuttoncaption:设置yes则显示Done按钮,设置为no则隐藏Done按钮,点击Done按钮关闭浏览器页面;
toolbar:设置为yes则显示toolbar;no则隐藏toolbar(toolabar相当于Android的返回键功能);
keyboardDisplayRequiresUserAction:设置为yes或者no来控制打开键盘时是否通过JavaScript调用focus()接收焦点,默认为yes;
toolbarposition:设置为top或者bottom,使工具栏显示在窗口的顶部或底部;
四、举个栗子
举个简单的例子,假如在你的页面上有一个button,点击它会调用inappbrowser
<button onclick="cordova.InAppBrowser.open('http://www.baidu.com', '_blank', 'location=yes')"> Test InAppBrowser </button>
Cordova插件:InAppBrowser的更多相关文章
- 【No.4 Ionic】修改 cordova 插件
在使用 cordova 过程 使用的插件 有可能不能满足个人需求,就需要修改,下面就直接说说步骤 插件结构 我用 cordova-plugin-inappbrowser 插件 讲解 在目录中有个 sr ...
- 理清cordova插件的调用流程
从调用的角度看流程 前端调用(clobbers)——>cordova_plugins.js(clobbers对应插件id和插件文件所在的路径)—–>js部分(配置着插件的名字,已经插件里 ...
- Cordova插件相关常用命令
一,插件相关常用命令 1,查看所有已经安装的插件 1 cordova plugin ls 2,安装插件(以camera插件为例) 1 cordova plugin add cordova-plug ...
- cordova插件iOS平台实战开发注意点
cordova插件是其设计理念的精髓部分,创建并使用自定义插件也是一件比较容易的事.但在这个过程中也容易进入一些误区或者有一些错误的理解,下面从笔者实际开发中遇到的问题出发,对其中的一些注意点和重要概 ...
- 如何给Ionic写一个cordova插件
写一个cordova插件 之前由javaWeb转html5开发,由于面临新技术,遂在适应的过程中极为挣扎,不过还好~,这个过程也极为短暂:现如今面临一些较为复杂的需求还会有一丝丝头痛,却没有一开始那么 ...
- ionic实战系列(二):使用cordova插件
本章主要关注cordova的各种插件,利用好手机(移动设备)的原生功能.首先cordova是一个将web网页内嵌到原生app的平台(核心功能),然后cordova拥有的插件系统扩展了核心功能. Cor ...
- cordova插件汇总
1.获取当前应用的版本号 cordova plugin add cordova-plugin-app-version 2.获取网络连接信息 cordova plugin add cordova-plu ...
- Cordova入门系列(三)Cordova插件调用 转发 https://www.cnblogs.com/lishuxue/p/6018416.html
Cordova入门系列(三)Cordova插件调用 版权声明:本文为博主原创文章,转载请注明出处 上一章我们介绍了cordova android项目是如何运行的,这一章我们介绍cordova的核心 ...
- Cordova入门系列(三)Cordova插件调用
版权声明:本文为博主原创文章,转载请注明出处 上一章我们介绍了cordova android项目是如何运行的,这一章我们介绍cordova的核心内容,插件的调用.演示一个例子,通过cordova插件, ...
- 自定义 Cordova插件(基础篇)
cordova自定义插件 注意:存放自定义cordova插件目录不能有空格可能会报错 cordova的安装 下载node.js,安装完成后你可以在命令行中使用node和npm. 安装cordova使用 ...
随机推荐
- ManyToManyField 增加记录
class BOMView(View): def get(self,request): obj=BOMForm() return render(request,'bom.html',{'obj':ob ...
- Docker学习笔记之保存和共享镜像
0x00 概述 让 Docker 引以为傲的是它能够实现相比于其他虚拟化软件更快的环境迁移和部署,在这件事情上,轻量级的容器和镜像结构的设计无疑发挥了巨大的作用.通过将容器打包成镜像,再利用体积远小于 ...
- Spring Boot 整合Mybatis非starter时,mapper一直无法注入解决
本来呢,直接使用mybatis-spring-boot-starter还是挺好的,但是我们系统比较复杂,有多个数据源,其中一个平台自己的数据源,另外一些是动态配置出来的,两者完全没有关系.所以直接使用 ...
- 01: Python基本数据类型
目录: 1.1 列表和元组 1.2 字符串 1.3 字典 1.4 集合 1.1 列表和元组返回顶部 1.列表基本操作 1. 列表赋值 a = [1,2,3,4,5,6,7,8] a[0] = 100 ...
- Java Spring+Mysql+Mybatis 实现用户登录注册功能
前言: 最近在学习Java的编程,前辈让我写一个包含数据库和前端的用户登录功能,通过看博客等我先是写了一个最基础的servlet+jsp,再到后来开始用maven进行编程,最终的完成版是一个 Spri ...
- Codeforces 808G Anthem of Berland - KMP - 动态规划
题目传送门 传送点I 传送点II 传送点III 题目大意 给定一个字符串$s$,和一个字符串$t$,$t$只包含小写字母,$s$包含小写字母和通配符'?'.询问$t$可能在$s$中出现最多多少次. 原 ...
- C语言实现随机生成0~100的数
#include <iostream> #include <time.h> int main() { srand((unsigned)time(NULL));//srand() ...
- python ---12 生成器 推导式
一.生成器 函数中有yield 的就是生成器函数(替代了return) 本质就是迭代器 一个一个的创建对象 节省内存 1.创建生成器 最后以yield结束 1. 通过⽣成器函数 2. ...
- 第一次怎么把本地git仓库的内容push到远程仓库?
使用git push origin <分支名> -f 这种方式可以用本地仓库的内容覆盖远程仓库.
- extjs使用笔记-21
yii是后台php框架 而yui是前端界面框架,是ajax框架 Extjs是建立在yui基础上的.不要搞混了. jquery的ready方法,是在文档已经加载完毕\图像完全显示后, 才载入执行的. 由 ...