Я боролся с этим некоторое время. Я пытаюсь позвонить, когда люди нажимают «Вызов» из всплывающего окна. Смешно, что он сразу же звонит, когда набирает номер телефона. Но когда они попали 'Вызов', консоль возвращается:Разрешить вызов (и карты и почту) в кордове
ERROR Internal navigation rejected - <allow-navigation> not set for url='tel:06-83237516
Код:
Контроллер:
$scope.callPerson = function() {
var link = "tel:" + $scope.person.phonenumber;
var confirmTel = $ionicPopup.confirm({
title: $scope.person.phonenumber,
cancelText: 'Cancel',
okText: 'Call'
});
confirmTel.then(function(res) {
if (res) {
window.open(link);
} else {
console.log('cancel call');
}
});
}
Config.xml:
<access origin="*"/>
<allow-intent href="tel:*"/>
<allow-intent href="mailto:*"/>
<access origin="tel:*" launch-external="yes"/>
<access origin="mailto:*" launch-external="yes"/>
HTML:
<div ng-click="callPerson()"> {{person.phonenumber}}</div>
С Mail он вообще не работает и возвращает идентичную ошибку. То же самое для открытия карт. Он работает в тестовом приложении PhoneGap, но не при развертывании.
Карты Код:
$scope.openmaps = function() {
var address = $scope.person.adres + ", " + $scope.person.plaats;
var url = '';
if (ionic.Platform === 'iOS' || ionic.Platform === 'iPhone' || navigator.userAgent.match(/(iPhone|iPod|iPad)/)) {
url = "http://maps.apple.com/maps?q=" + encodeURIComponent(address);
} else if (navigator.userAgent.match(/(Android|BlackBerry|IEMobile)/)) {
url = "geo:?q=" + encodeURIComponent(address);
} else {
url = "http://maps.google.com?q=" + encodeURIComponent(address);
}
window.open(url);
};
Попробуйте document.location.href = 'tel:' + $ scope.person.phonenumber; – Ved
Это может сработать! Однако я нашел что-то; добавив в config.xml сделал трюк (вместо ). Не знаю, почему это так. Может быть, потому, что я пытаюсь вызвать URL-адрес у контроллера? –
Cake
для меня он отлично работает в Android, но не работает в iOS любой помощи? –