[Cordova inAppBrowser 在App内打开浏览器]

方案1:

使用Cordova插件 cordova-plugin-inappbrowser

  1.  添加插件

cordova plugin add cordova-plugin-inappbrowser

  2. 调用以及参数

cordova.InAppBrowser.open(url, target, options);

或者

window.open = cordova.InAppBrowser.open;
window.open(url, target, options);

  

  url:  如果包含 Unicode 字符, 调用 encodeURI(url);

  target 包括: _self, url在白名单中 则在cordova webview中打开 否则在 inAppBrowser中打开

        _blank, 在 inAppBrowser中打开

        _system, 在系统浏览器中打开, 比如Chrome/Safari

  options 包括:"location=yes/no" 地址栏

         "hidden=yes/no" no 是默认的, yes则正常load 但是不显示,通过调用.show() .close()来显示或关闭,如下

         其他options请参考官网

  

var target = "_blank";

var options = "location=yes,hidden=yes";

inAppBrowserRef = cordova.InAppBrowser.open(url, target, options);
inAppBrowserRef.addEventListener(‘loadstart‘, loadStartCallBack);
inAppBrowserRef.addEventListener(‘loadstop‘, loadStopCallBack);
inAppBrowserRef.addEventListener(‘loaderror‘, loadErrorCallBack);

...
function loadStopCallBack() {
 if (inAppBrowserRef != undefined) {
  inAppBrowserRef.show();
 }
}
...

  

方案2:

使用cordova插件 cordova-plugin-safariviewcontroller

  1. 添加插件

$ ionic cordova plugin add cordova-plugin-safariviewcontroller
$ npm install --save @ionic-native/safari-view-controller

  2. 调用以及参数

...

if (typeof SafariViewController !== ‘undefined‘) {
      SafariViewController.isAvailable(function (available) {
        console.log(" Is  available");
        if (available) {
          console.log("Safari Is  available");
          SafariViewController.show({
            url: encodeURI(url),
            toolbarColor: ‘#0091ea‘,
            tintColor: ‘#0091ea‘,
            controlTintColor: "#0091ea"
          });
        } else {
          window.open(encodeURI(url), ‘_blank‘, ‘location=no‘);
        }
      });
  } else {
      window.open(encodeURI(url), ‘_blank‘, ‘location=no‘);
  }

  

原文地址:https://www.cnblogs.com/Asen0501/p/9141057.html

时间: 2024-11-09 12:58:15

[Cordova inAppBrowser 在App内打开浏览器]的相关文章

在app内打开自己app的专用设置界面

在我们的APP中,可能会使用多种服务,例如定位.推送.相册.拍照.通讯录等.选择是否允许一般只出现在安装app后第一次打开时,可是我们依然需要在使用到某种服务的时候判断是否用户是否允许了该服务,因为用户有可能自己关闭了自己app的这种服务器. 通常我们的做法是,给一个弹窗,提示开启选项的路径:例如:这样 也可以做一张长图,用ScrollView显示出来,可能会体验稍微好一点. 目前更好的做法,大概是直接跳转到app的设置界面,像下面这样: 直接上代码: [[UIApplication share

iOS app内打开safari

最近使用google的oauth认证,发现不再允许使用UIWebview进行认证了,必须使用系统游览器,使用游览器也不一定要在app之间跳转,ios使用SFSafariViewController就可以达到要求, google提供了demo:https://github.com/google/GTMAppAuth

通过js判断微信、QQ等内置浏览器并在外部浏览器打开

在涉及移动端微信推广的项目时,由于对推广需求的精细化,不仅需要推广效率,还有始终保证域名在微信中的正常状态,我们解决方案在微信.QQ.支付宝内置浏览器给出相应的提示. function is_neizhi() { var ua = navigator.userAgent.toLowerCase(); if (ua.match(/MicroMessenger/i) == "micromessenger") { return "weixin"; } else if (u

通过js判断微信内置浏览器跳转到外部浏览器打开

在涉及移动端微信推广的项目时,由于对推广需求的精细化,不仅需要推广效率,还有始终保证域名在微信中的正常状态,我们解决方案在微信.QQ.支付宝内置浏览器给出相应的提示. function is_neizhi() { var ua = navigator.userAgent.toLowerCase(); if (ua.match(/MicroMessenger/i) == "micromessenger") { return "weixin"; } else if (u

微信内嵌浏览器如何直接打开外部浏览器下载APP(APK)

想必大家会经常碰到网页链接在微信内无法打开和微信内无法打开app下载页的情况.通常这种情况微信会给个提示 “已停止访问该网址” ,那么导致这个情况的因素有哪些呢,主要有以下四点 1.网页链接被举报次数过多.2.网页含违规内容,含敏感词.3.被腾讯检测系统判断为诱导分享内容.4.转发分享次数达上限 那么上述问题怎么办呢?只要我们实现微信跳转浏览器的功能即可. 功能目的 生成微信跳转链接,实现微信内置浏览器跳转外部浏览器打开网页. 功能效果 对网页所属的PHP代码进行相关处理,加入跳转接口即可实现.

微信内打开的网页不能下载APP,微信无法打开浏览器访问指定页面的解决方案交给gdtool

前言 现如今微信对第三方推广链接的审核是越来越严格了,域名在微信中分享转发经常会被拦截,一旦被拦截用户就只能复制链接手动打开浏览器粘贴才能访问,要不然就是换个域名再推,周而复始.无论是哪一种情况都会面临一个非常严重的问题,那就是用户体验差,用户量无法有效地累积起来,从而导致推广成本一直在增加,推广效率却无法有明显的提升. 所以针对这个问题,特写这篇文章来分享如何正常从微信内访问已经被拦截的链接,或者说如何有效地防止链接被微信拦截.此方法适用于安卓和苹果,且不需要安装任何软件和插件. ? 简单的处

微信内置浏览器打开app下载网页提示已停止访问怎么办?哪些api接口可以恢复访问

微信内置浏览器打开app下载网页提示已停止访问怎么办?哪些api接口可以恢复网页正常访问? 现如今微信对第三方app下载链接的拦截是越来越严格了,下载链接在微信中分享转发经常会被拦截,一旦被拦截用户就只能复制链接手动打开浏览器粘贴才能访问,如此给用户带来的体验台差,用户量无法有效地累积起来,从而导致推广成本一直在增加,推广效率却无法有明显的提升. 所以针对这个问题,特写这篇文章分享哪些api接口可以免费实现微信内自动跳转浏览器下载app的功能. Mindjump-API接口平台 366API-接

iOS应用内打开App Store应用详情界面

用iPhone浏览UC浏览器的"应用商店"时,发现可以直接在应用内打开App Store中的应用详情和下载页面. 下面来看看怎么实现这个效果吧. 苹果官方文档 "SKStoreProductViewController Class Reference"里有如下介绍: [plain] view plaincopy A SKStoreProductViewController object presents a store that allows the user to

微信中点击链接直接跳到默认浏览器是怎么实现的?(不是在微信内置浏览器打开)

在我们使用微信营销的时候,很容易碰到推广连接在微信内无法打开或不提示前往浏览器打开.首先说一下推广域名在微信内无法打开的问题,这是因为微信风控系统封杀了第三方下载链接,所以在微信内无法打开.其次再说一下为什么微信内置浏览器不提示前往Safari打开,这是因为缺少了一个微信跳转外部浏览器的接口,如果我们在代码中加入该接口,那么就可以实现ios系统提示前往Safari打开下载页,安卓系统则可以直接跳出到手机默认浏览器. 但很多人不知道这个功能该如何实现,下面就为大家介绍一种实现方式,可直接实现微信外