2017-12-18 282 views
1

我使用的是离子1,我想在离子内容中加载外部网址(如Messenger应用程序所做的那样) 我已经尝试了cordova-plugin-inappbrowser,但它加载了url一个新的页面。在离子内容中加载外部网址

这是我所使用的代码:

cordova.InAppBrowser.open(item.url, '_self'); 

我也试过里面嵌入iframe中的URL,但它拒绝显示,因为URL是不不是我的。

这是我写的<iframe src="{{item.url | trustUrl}}"></iframe>

任何帮助将不胜感激:)

+0

要在应用程序的任何过程中完成该功能吗? – Anuj

+0

@Anuj我发现这个科尔多瓦插件[ThemeableBrowser](https://github.com/initialxy/cordova-plugin-themeablebrowser)它做我们想要的,但它有点难看,我没有看到我是否可以重写它的风格。希望你觉得它有用。 –

+0

嗨,兄弟,谢谢你的味精。我做了iframe(在html中)和DomSanitizer(npm为ts)现在它工作正常。 – Anuj

回答

0

我用我试了一下框架和domsanitizer我的HTML是

<ion-header> 
    <ion-navbar color="danger"> 
    <button ion-button menuToggle> 
     <ion-icon name="menu"></ion-icon> 
    </button> 
    <ion-title>Payments Detail</ion-title> 
    </ion-navbar> 
</ion-header> 

<ion-content> 
    <iframe width="100%" height="100%" [src]="myurl" frameborder="0" allowfullscreen></iframe> 
</ion-content> 

和我的TS是

import { Component } from '@angular/core'; 
import { DomSanitizer } from '@angular/platform-browser'; 
import {DATA} from "../../app/config"; 
import {NavParams, ToastController} from "ionic-angular"; 
import {Network} from "@ionic-native/network"; 


@Component({ 
    templateUrl: 'paymentDetail.html' 
}) 
export class PaymentDetail { 
    myurl:any=""; 
    constructor(private network: Network,private toastCtrl: ToastController,private sanitizer: DomSanitizer,public navParams: NavParams) { 

    } 
    ngOnInit() { 
     if(this.network.type !="none"){ 
     console.log(this.navParams.get("payment")); 
     this.myurl=this.sanitizer.bypassSecurityTrustResourceUrl(DATA["API_BASE_URL2"]+"userpage/RedirectNow?id="+this.navParams.get("payment")); 
     }else { 
      let toast = this.toastCtrl.create({ 
       message: "check your internet connection before process", 
       duration: 2000, 
       position: 'middle' 
      }); 
      toast.present(); 
     } 
    } 

} 

试试这个。