7

我正在使用 AngularJS 和 Trigger.io 来开发适用于 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 中一样工作?

4

3 回答 3

9

看起来 Angular 添加了 unsafe: 到它无法识别的 url 方案中,我认为您想要包含以下内容:

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

这将 content: 添加到接受的 url 方案中。

于 2013-04-21T14:57:09.980 回答
1

我遇到了同样的问题,特别是尝试显示带有由 forge.file.getImage 返回的文件的 src 的 img。Angular 将 unsafe: 添加到本地 img URL 的 content: 前缀中,正如 connorhd 所说,您需要将 content: 添加到 url 白名单。

请注意,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.
}]);
于 2013-11-26T03:28:31.407 回答
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(...)
    }
]);
于 2016-06-14T10:36:23.530 回答