`

在ionic应用中打开外部网站(使用InAppBrowser插件)

 
阅读更多

在安卓上试了一下,如果直接window.open(url), 在app中点击外部链接没有任何反应。

 

安装https://github.com/apache/cordova-plugin-inappbrowser
执行命令:
ionic plugin add cordova-plugin-inappbrowser

简而言之,就是用window.cordova.InAppBrowser.open替换window.open

 

步骤:

1. 在应用程序启动的时候判断window.cordova是否存在如果是重写window.open方法

 

2. 用ng-click="openLink(story.url)" 替换先前的href

 

3. 在$scope中定义openLink方法。

4.  连上手机, 运行ionic run android测试 

文件一: www/index.html

<div class="list">
      <a ng-click="openLink(story.url)" class="item item-thumbnail-left item-text-wrap"
         ng-repeat="story in stories track by story.id">
        <img ng-src="{{story.thumbnail}}" ng-if="story.thumbnail.startsWith('http')"/>
 
        <h2>{{story.title}}</h2>
 
        <p>
          <span am-time-ago="story.created_utc" am-preprocess="unix"></span> - {{story.domain}}
        </p>
      </a>
    </div>

 文件二: www/js/app.js

(function () {
  var app = angular.module('myreddit', ['ionic', 'angularMoment']);
  app.controller('RedditCtrl', function ($http, $scope) {
    $scope.stories = [];
 
    function loadStories(params, callback) { 。。。
    }
 
    $scope.loadOlderStories = function () {。。。
    }
 
    $scope.loadNewerStories = function () {。。。
    }
 
    $scope.openLink = function (url) {
      window.open(url, '_blank');
    }
 
  });
  app.run(function ($ionicPlatform) {
    $ionicPlatform.ready(function () {
     。。。
      if (window.cordova && window.cordova.InAppBrowser) {
        window.open = window.cordova.InAppBrowser.open;
      }
。。。
    });
  })
 
})();

 

 

分享到:
评论

相关推荐

    ionic sublime 2/3 提示插件 ionic-sublime-plugin

    在移动应用开发领域,Ionic框架以其强大的功能和跨平台兼容性,成为了许多开发者的选择。而Sublime Text作为一款广受欢迎的代码编辑器,拥有丰富的插件生态系统,使得开发过程更加高效。当我们结合两者,通过"ionic-...

    cordova在app内部指定浏览器打开链接插件

    总结来说,这个知识点涉及到如何在Cordova应用中使用inappbrowser插件来提供内部浏览器功能,以及如何通过编程方式控制内部浏览器窗口的展示和行为。这是开发混合移动应用时一个非常实用的技能,能够帮助开发者创建...

    使用Ionic2制作移动应用

    - **运行应用**:通过 `ionic serve` 命令可以在浏览器中预览应用,而 `ionic run android` 或 `ionic run ios` 可以在模拟器或真机上运行。 ##### 第二课:剖析Ionic2项目结构 - **项目文件夹**:了解项目的文件夹...

    Ionic时间选择插件

    这个插件允许用户在应用中方便地选择小时和分钟,提高了用户体验,特别是对于那些需要用户输入特定时间的应用场景,如预订、提醒或日程管理等。 在技术层面上,这个插件的核心是Angular的指令系统。Angular指令允许...

    ionic3自定义cordova插件

    **在Ionic 3中使用自定义Cordova插件:** 1. **安装插件**:通过`cordova plugin add &lt;your-plugin-path&gt;`命令将本地的插件添加到`Ionic 3`项目中,或者如果是从npm获取的,使用`npm install --save ...

    ionic2自定义插件demo

    在 Ionic 应用中,通常我们会使用Cordova插件来访问设备的功能,如摄像头、GPS或者蓝牙等。然而,有时我们需要实现特定的业务逻辑或功能,这些可能在现有的Cordova插件中并未涵盖,这时就需要创建自定义插件。 创建...

    ionic时间日期插件

    本文将深入探讨"ionic时间日期插件",以及如何在实际项目中使用它。 首先,"ionic时间日期插件"主要解决的是在Ionic应用中添加日期和时间选择器的问题。这些选择器通常以交互性好、用户体验佳的方式呈现,让用户...

    ionic 支付宝插件

    这些参数将在后续的支付调用中使用。 3. **集成支付宝SDK**: 由于`com.yoopoon.cordova.plugin.alipay`插件已经包含了支付宝的SDK,因此你无需手动导入。但是,你需要在你的 Ionic 应用中配置相应的环境,确保...

    Ionic消息提示插件

    总的来说,这个"Ionic消息提示插件"是提高Ionic应用用户体验的重要工具,通过Angular服务的便利性,简化了在应用中添加各种类型提示的过程。开发者可以轻松集成并根据需求进行定制,以创建更互动、更具反馈感的移动...

    ionic自定义插件Demo

    - 使用`cordova plugin add .`命令在本地测试插件,或者将插件发布到npm仓库,然后在项目中使用`cordova plugin add your-plugin-id`来安装。 - 在处理jar包时,确保库与你的Android API兼容。有些库可能需要特定的...

    ionic热更新插件

    这个特定的“ionic热更新插件”已在多个项目中得到实际应用,并未出现任何已知的bug,这意味着它在稳定性和兼容性方面表现良好。它主要功能可能包括: 1. **自动检测更新**:插件会定期检查服务器是否有新的更新包...

    调用cordova插件的一个ionic实例,插件包含android服务

    在本文中,我们将深入探讨如何在Ionic应用中调用Cordova插件,特别是涉及Android服务的实例。首先,让我们理解一下关键概念。 **Cordova** 是一个开源框架,允许开发者使用Web技术(如HTML、CSS和JavaScript)构建...

    Ionic日期选择插件

    在移动应用开发中,框架如Ionic提供了一种高效的方式来构建跨平台的应用程序,结合Angular的强大力量,...开发者可以通过集成这个插件,快速地在他们的Ionic应用中添加日期和时间选择功能,提高应用的可用性和交互性。

    windows 下 ionic3 创建ionic1 项目 并添加android 平台 附添加插件的方法

    在安装 ngCordova 之后,可以在项目中使用 ngCordova 提供的功能。 创建一个 Ionic 1 项目,并添加 Android 平台,需要安装 Node.js、Cordova 和 Ionic,使用 Ionic 创建项目,添加 Android 平台,并安装 ngCordova...

    ionic3-使用cordova创建自定义插件

    5. 在 Ionic 应用中使用插件:在你的组件或服务中引入 `myplugin.js`,然后调用 `myplugin.print` 方法。 ```typescript import { Component } from '@angular/core'; import { Platform } from '@ionic/angular'; ...

    ionic自带的日历插件ionicdatepicker

    接下来,我们来看如何在表单中使用`ionic-datepicker`。在你的HTML模板文件中,你可以像下面这样创建一个日期选择器: ```html 选择日期 [(ngModel)]="selectedDate"&gt; &lt;ionic-datepicker [(ngModel)]=...

    ionic应用-tab应用+返回键监听

    标题中的“ionic应用-tab应用+返回键监听”指的是使用Ionic框架构建的一款应用,该应用采用了Tab导航模式,并且集成了返回键监听功能。Ionic是一款基于AngularJS和Apache Cordova的移动应用开发框架,它允许开发者...

    ionic 微信支付插件

    在移动应用开发中,特别是在使用Ionic框架构建混合应用程序时,集成微信支付功能对于吸引中国市场的用户至关重要。"Ionic微信支付插件"是一个专门为 Ionic 应用程序设计的扩展,允许开发者在他们的应用内实现微信...

    ionic应用实用模板

    在这个"ionic应用实用模板"中,我们看到它是从基础的ionic tabs模板演变而来的,更贴近实际业务场景。 ### 1. Ionic框架核心概念 - **AngularJS**: AngularJS是Google维护的一个前端MVC框架,用于构建动态Web应用...

    用Ionic2编写移动应用程序

    - **ECMAScript 6 (ES6)**:ES6是JavaScript语言的一次重要更新,它引入了许多新特性,如箭头函数、类和模块等,这些特性在Ionic2中得到广泛应用。 ### 页面、组件、指令和管道: - **页面(Page)**:在Ionic2中,...

Global site tag (gtag.js) - Google Analytics