我正在使用带有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中一样?
答案 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(...)
}
]);