Angular Js和Trigger.io - 无法关注适用于iOS的Android上的链接

时间:2013-04-21 12:04:38

标签: android angularjs trigger.io

我正在使用带有Trigger.io的AngularJS为iOS和Android开发移动应用程序。

当我尝试打开如下所示的链接时:

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

它在iOS上完美运行,但在Android上我在触发器控制台中收到此消息,并且链接未导航到:

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

我怎样才能在Android中使用它,就像在iOS中一样?

3 个答案:

答案 0 :(得分:9)

看起来Angular添加了不安全:对于它无法识别的url方案,我认为你想要包含以下内容:

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

将内容添加到已接受的网址方案中。

答案 1 :(得分:1)

我遇到了同样的问题,特别是尝试使用forge.file.getImage返回的文件的src显示img。 Angular将不安全的内容添加到本地img URL的内容:前缀,并且如connorhd所说,您需要将内容添加到网址白名单。

请注意,compileProvider的API已经更新了Angular的最新版本,所以我在这里发表评论以防其他人发现此变通办法的更新版本有用。

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.
}]);

答案 2 :(得分:0)

我也有这个问题,只需在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(...)
    }
]);