4

Ionic 2 アプリで SMS メッセージを使用しています。Cordova CLI の最新バージョンと Ionic 2 の最新バージョンを使用しています。

私が使うとき

<a href="sms:14038000000"><button outline><ion-icon name="ios-chatbubbles"></ion-icon></button></a>

SMS:14038000000 として正常に動作します。

私が使うとき

<ion-card *ngFor="let item of corp">
    <div class="contact-name">
        {{ item.name}}
    </div>
    <div class="contact-content">
        <a href="sms:{{item.sms}}"><button outline><ion-icon name="ios-chatbubbles"></ion-icon></button></a>
    </div>
</ion-card>

SMS が安全でないと表示される:sms:14038000000

Ionic 1 app.js で使用した

.config(function($compileProvider){
   $compileProvider.aHrefSanitizationWhitelist(/^\s*(https?|http?|ftp|mailto|file|sms|tel):/);
})

この問題を解決するには.

Ionic 2 app.ts に同様のソリューションはありますか

4

2 に答える 2

5

UPADTE

@George Huang が言及したように、Angular RC 6 でDomSanitizationService名前が変更されました。DomSanitizer

Angular2hrefが安全でないとマークするのを避けるために必要なことは、次のDomSanitizerようにインポートすることだけです。

import { DomSanitizer } from '@angular/platform-browser';

コンストラクターでインスタンスを作成します。

constructor(private sanitizer: DomSanitizer, ...) { 
    //...   
}

そして、次のbypassSecurityTrustUrl(...)ような方法を使用します。

sanitize(url:string) {
    return this.sanitizer.bypassSecurityTrustUrl(url);
}

最後に、ビューでそのメソッドを使用します。

<ion-content>
  <ion-card *ngFor="let item of corp">
    <div class="contact-name">
        {{ item.name}}
    </div>
    <div class="contact-content">
        <a [href]="sanitize('sms:' + item.sms)"><button outline><ion-icon name="ios-chatbubbles"></ion-icon></button></a>
    </div>
</ion-card>
</ion-content>

古い答え:

Angular2hrefが安全でないとマークするのを避けるために必要なことは、次のDomSanitizationServiceようにインポートすることだけです。

import { DomSanitizationService } from '@angular/platform-browser';

コンストラクターでインスタンスを作成します。

constructor(private sanitizer: DomSanitizationService, ...) { 
    //...   
}

そして、次のbypassSecurityTrustUrl(...)ような方法を使用します。

sanitize(url:string) {
    return this.sanitizer.bypassSecurityTrustUrl(url);
}

最後に、ビューでそのメソッドを使用します。

<ion-content>
  <ion-card *ngFor="let item of corp">
    <div class="contact-name">
        {{ item.name}}
    </div>
    <div class="contact-content">
        <a [href]="sanitize('sms:' + item.sms)"><button outline><ion-icon name="ios-chatbubbles"></ion-icon></button></a>
    </div>
</ion-card>
</ion-content>
于 2016-08-27T17:11:52.123 に答える