2016-11-03 2 views
1

Привет, я хотел бы знать, как установить ориентацию устройства в nativescript. В частности, я хочу, чтобы приложение, которое я пишу, всегда оставалось в той же ориентации (портрет), чтобы вращение устройства не вызывало его в ландшафт.Как установить ориентацию в nativescript

Я пробовал плагин ориентации nativescript и setOrientation.

var orientation = require('nativescript-orientation'); 
console.log(JSON.stringify(orientation));// outputs JS: {} 
orientation.setOrientation("portrait"); 

Однако я получаю ошибку «Не удается прочитать свойство setOrientation неопределенных. ТНС список плагинов показывает, что плагин установлен. Кроме того, я попытался удалить каталог platforms/android и работает tns platform add android с тем же результатом.

Я также попытался положить различные комбинации android:screenOrientation="portrait" в AndroidManifest.xml без успеха.

AndroidManifest.xml изнутри App_resources выглядит следующим образом

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="__PACKAGE__" 
    android:versionCode="1" 
    android:versionName="1.0"> 

    <supports-screens 
     android:smallScreens="true" 
     android:normalScreens="true" 
     android:largeScreens="true" 
     android:xlargeScreens="true"/> 

    <uses-sdk 
     android:minSdkVersion="17" 
     android:targetSdkVersion="__APILEVEL__"/> 

    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
    <uses-permission android:name="android.permission.INTERNET"/> 

    <application 
     android:screenOrientation="portrait" 
     android:name="com.tns.NativeScriptApplication" 
     android:allowBackup="true" 
     android:icon="@drawable/icon" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme"> 

     <activity 
      android:name="com.tns.NativeScriptActivity" 
      android:label="@string/title_activity_kimera" 
      android:configChanges="keyboardHidden|orientation|screenSize" 
      android:theme="@style/LaunchScreenTheme"> 
      <meta-data android:name="SET_THEME_ON_LAUNCH" android:resource="@style/AppTheme" /> 

      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <activity android:name="com.tns.ErrorReportActivity"/> 
    </application> 
</manifest> 
+0

после изменения AndroidManifest.xml вы сделали полную 'build'? Также вам, вероятно, потребуется удалить текущий .apk, который у вас есть на устройстве/эмуляторе, а затем запустить «run» или 'livesync' новую сборку. Опция манифеста - лучшая альтернатива силе одной ориентации в приложениях Android из того, что я знаю. Так что это сработает, но если вы не удалите старый .apk, у вас наверняка будет проблема кэширования на устройстве :) –

+0

Я удалил apk и запустил его с помощью 'tns run android'. Также я добавил файл android manifest.xml в случае, если я что-то пропустил – xerotolerant

ответ

10

Мое приложение - только ориентация на портрет. Для android вам нужно просто добавить android:screenOrientation="portrait" в AndroidManifest.xml внутри тегов activity. Для iOS, open Xcode -> Select project on project navigator (left panel) -> Select target in middle panel -> Choose "General" tab -> Tick only "Portrait" in Deployment info section

+0

Спасибо за ваше предложение, однако я добавил его в манифест Android и уже не работает. Я обновил сообщение с манифестом. возможно, я поставил флаг в неправильное место? Можете ли вы посмотреть на него и рассказать мне, пожалуйста? – xerotolerant

+0

Я положил его в тег 'activity'. Где ты это сказал? –

+0

Я отредактировал исходное сообщение на весь файл. – xerotolerant

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

  • Нет связанных вопросов^_^