2016-11-21 6 views
0

Я пытаюсь запустить камеру на Android 6.0.0 с помощью веб-API. Ниже приведен фрагмент кода, который отлично работает в веб-браузере.Navigator.getUserMedia() возвращает разрешение, запрещенное при запуске на Android-телефоне

var constraints = { 
        video: true, 
        audio: false, 
      } 

    // get the media sources 
    MediaStreamTrack.getSources(function(sourceInfos) { 

      navigator.getUserMedia(constraints, function(stream){ 
       domElement.src = URL.createObjectURL(stream); 
      }, function(error) { 
        console.error("Cant getUserMedia()! due to ", error); 
      }); 
    }); 

Я вложил этот кусок кода в apk с ионным каркасом. Но по телефону он отображает сломанное изображение воспроизведения видео.

При дальнейшей отладке я заметил, что ошибка «отклонено разрешение» выбрасывается. Я не совсем уверен, по какой причине эта ошибка возникает. Я googled и сделал все предоставленные решения. Но это не сработало для меня.

Если я пытаюсь построить его с помощью PhoneGap, он показывает NavigatorUserMediaError {имя: "PermissionDeniedError", сообщение: "Только безопасное происхождение разрешено (см некоторых URL).", ConstraintName: ""}

Мог вы, пожалуйста, помогите мне?

ответ

0

Пожалуйста, попробуйте этот ответ.

http://api.phonegap.com/1.0/camera

Пример

<?xml version="1.0" encoding="UTF-8" ?> 
    <widget xmlns = "http://www.w3.org/ns/widgets" 
     xmlns:gap = "http://phonegap.com/ns/1.0" 
     id   = "com.phonegap.example" 
     versionCode = "10" 
     version  = "1.0.0" > 

    <!-- versionCode is optional and Android only --> 

    <name>PhoneGap Example</name> 

    <description> 
     An example for phonegap build docs. 
    </description> 

    <author href="https://build.phonegap.com" email="[email protected]"> 
     Hardeep Shoker 
    </author> 

    <!-- 
     If you do not want any permissions to be added to your app, add the 
     following tag to your config.xml; you will still have the INTERNET 
     permission on your app, which PhoneGap requires. 
    --> 
    <preference name="permissions" value="none"/> 

    <!-- to enable individual permissions use the following examples --> 
    <feature name="http://api.phonegap.com/1.0/battery"/> 
    <feature name="http://api.phonegap.com/1.0/camera"/> 
    <feature name="http://api.phonegap.com/1.0/contacts"/> 
    <feature name="http://api.phonegap.com/1.0/file"/> 
    <feature name="http://api.phonegap.com/1.0/geolocation"/> 
    <feature name="http://api.phonegap.com/1.0/media"/> 
    <feature name="http://api.phonegap.com/1.0/network"/> 
    <feature name="http://api.phonegap.com/1.0/notification"/> 
</widget> 
+0

В каком файле манифеста вы ссылаетесь? AndroidManifest? –

+0

см. Редактирование. Это файл config.xml. –

+0

Буду признателен, если я получу решение, которое не использует телефонную разборку. Я не знаком с этим. –

0

Может быть, у вас есть проблема с разрешениями Android среды выполнения. Here, вы можете увидеть ответ на это на обсуждение в Ionic. Эта проблема возникает неясным образом, но все они находятся в Android 6 Runtime Permissions system. Вы можете решить эту проблему: adding the permissions to your manifest и requesting the runtime permissions.

Смежные вопросы