2013-04-21 1 views
7

Sto utilizzando AngularJS con Trigger.io per sviluppare un'applicazione mobile sia per iOS che per Android.Angular Js e Trigger.io - Impossibile seguire un collegamento su Android che funziona su iOS

Quando provo ad aprire un collegamento che assomiglia a questo:

<a ng-href="#/offers/{{featured_offer.Id}}"></a> 

Funziona perfettamente bene su iOS, ma su Android ottengo questo messaggio nella console grilletto, e il collegamento non è navigato a:

[WARNING] Attempted to open a URL which could not be handled: unsafe:content://io.trigger.forge722b6464a0e211e2ba9d12313d00dc45/src/index.html#/offers/8 

Come posso far funzionare questo in Android come funziona su iOS?

risposta

9

Sembra angolare aggiunge pericoloso: per schemi URL non riconosce, penso che si desidera includere qualcosa di simile:

app.config(function($compileProvider){ 
    $compileProvider.urlSanitizationWhitelist(/^\s*(https?|ftp|mailto|file|tel|content):/); 
}); 

che aggiunge contenuti: agli schemi URL accettati.

+0

Questo era in effetti. L'ho capito subito dopo aver finalmente postato la domanda, ma ho dovuto aspettare 8 ore per rispondere perché non ho abbastanza reputazione. Quindi va da te! – trentclowater

+0

Il metodo btw è stato rinominato in 'aHrefSanitizationWhitelist' https://docs.angularjs.org/api/ng/provider/$compileProvider – tksfz

1

Ho avuto lo stesso problema, in particolare con il tentativo di visualizzare un img con un src di un file restituito da forge.file.getImage. Angular aggiunge non sicuro: al contenuto: prefisso dell'URL img locale e, come detto, è necessario aggiungere contenuto: alla whitelist dell'URL.

Nota che l'API di compileProvider è cambiata con le versioni recenti di Angular, quindi sto commentando qui nel caso in cui qualcun altro trovi utile una versione aggiornata di questa soluzione alternativa.

app.config(['$compileProvider', 
function($compileProvider) { 
    $compileProvider.imgSrcSanitizationWhitelist(/^\s*(https?|ftp|mailto|file|tel|content|blob):|data:image|/); 
    // note: you'll also have to do imgSrcSanitizationWhitelist if you want to use general links as well as ng-src on images. 
}]); 
0

Anch'io ho avuto questo problema è sufficiente aggiungere disinfettante in voi Config.xml

var app = angular.module('myApp', []) 
.config([ 
    '$compileProvider', 
    function($compileProvider) 
    { 
     $compileProvider.aHrefSanitizationWhitelist(/^\s*(https?|ftp|mailto|chrome-extension):/); 
     // Angular before v1.2 uses $compileProvider.urlSanitizationWhitelist(...) 
    } 
]);