I am using SMS messages in my ionic 2 App. I have the newest version of Cordova CLI and latest version of Ionic 2.
When I use
<a href="sms:14038000000"><button outline><ion-icon name="ios-chatbubbles"></ion-icon></button></a>
It works fine as sms:14038000000,
when I use
<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>
The SMS comes up as unsafe:sms:14038000000
In ionic 1 app.js I used
.config(function($compileProvider){
$compileProvider.aHrefSanitizationWhitelist(/^\s*(https?|http?|ftp|mailto|file|sms|tel):/);
})
To solve this issue.
Is there a similar solution for Ionic 2 app.ts
UPADTE
Just like @George Huang mentioned, DomSanitizationService was renamed to DomSanitizer in Angular RC 6.
All you need to do to avoid Angular2 marking your href as unsafe, is to import DomSanitizer like this:
import { DomSanitizer } from '@angular/platform-browser';
Create an instance in your constructor:
constructor(private sanitizer: DomSanitizer, ...) {
//...
}
And then use the bypassSecurityTrustUrl(...) method like this:
sanitize(url:string) {
return this.sanitizer.bypassSecurityTrustUrl(url);
}
Finally, in your view use that method:
<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>
Old answer:
All you need to do to avoid Angular2 marking your href as unsafe, is to import DomSanitizationService like this:
import { DomSanitizationService } from '@angular/platform-browser';
Create an instance in your constructor:
constructor(private sanitizer: DomSanitizationService, ...) {
//...
}
And then use the bypassSecurityTrustUrl(...) method like this:
sanitize(url:string) {
return this.sanitizer.bypassSecurityTrustUrl(url);
}
Finally, in your view use that method:
<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>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With