Meteor Cordova Orientation - meteor

I am attempting to lock the orientation of the meteor cordova build to portrait mode.
I have set up a top-level file called mobile-config.js
In that file I included:
App.setPreference('Orientation', 'portrait');
This seems to have no effect, it still switches to landscape mode.
Does anyone know how I could implement portrait lock? Thanks!

It appears to be an open bug, check this answer here and the bug itself here.
Apparently the simplest way is to edit the Manifest.xml file directly (what comes out of the meteor build command), but I'd use a plugin to avoid having to edit files manually after each build.
Bottom line, to fix it, wait for an official bug fix or meanwhile use a plugin.

Not sure if you have fixed it yet. I had a similar issue and resolved it for android app. Please note this solution has been tested for Meteor running on android device using:meteor run android-device. Meteor version is 1.3, also works on 1.3.1. Just stop your meteor server, uninstall the app from android device. Then inside the meteor project directory, meteor reset. Then meteor run android-device.
Let me know if this helps.

Related

Realm Android example in Android Studio are not working

I follow these instructions to get the examples working in Android Studio but I get problems with Gradle (as shown in image and video below).
Any idea on how to fix this ?
This happens with current master branch.
Here is a short video screen capture showing how this happens : https://youtu.be/H7djFyrxPxY
v1.1.0 branch (https://github.com/realm/realm-java/tree/v1.1.0) instead of master should work fine.
Or you need to execute ./gradlew installRealmJava before importing examples to build and install latest SNAPSHOT.
Well, you are definitely using 1.2.0-SNAPSHOT without adding the SNAPSHOT repository
maven {
url 'http://oss.jfrog.org/artifactory/oss-snapshot-local'
}
That could be causing this problem.

Visual Studio Apache Cordova - IOS build rotation issue

I'm a starter in writing app code in Visual Studio 2013 Community Apache Cordova and have managed to connect VS2013 with my Mac. Once I have gone through the process of building the app in VS and on my Mac and installing in on my iPhone, I open it up and it won't rotate. It doesn't rotate for a number of basic apps that I've written nor does it rotate if I build the default new project "Hello, your application is ready!" app.
I have done some research and tried changing the config.xml "Orientation" preference to "both", through the code window and also in the designer window but that doesn't change anything. I've also noticed that adding in a "BackgroundColor" preference doesn't work either.
Does anyone know if I may have configured something incorrectly or perhaps need to add something to my code?
All the HTML, JS and CSS that I've written seems to work okay (with the exception of trying to link URLs to the Safari Browser but that's another issue).
I have noticed the same issues. I tried finding some settings to fix that in the config.xml, but was not successful. I have resolved myself to just opening the iOS project in XCode and changing a few things:
Device Orientation: no matter the config.xml setting, its always only Portrait. I click-check the other 3 orientations.
Team: I have multiple developer profiles, and I need to choose correct one here.
Bundle Identifier. I screwed up one project, and have different case for iOS and Android. I leave the VS one as the Android one, so I can build completely correct for Android. Since I know I have to go to XCode for iOS anyway, I change the bundle identifier here.
You can find the project using Finder at ~/remote-builds/builds/9999/cordovaApp/platforms/ios/*.xcodeproj, where 9999 is the build number, though not necessarily the latest, largest number, but the latest datetime of the folder.
You can also refer to Greg's answer in this related post as an alternative solution.

Generate apk file for meteor app

I have a project is working for android browser. Is there a way to generate the apk file?
Also, are there anything that I shoud know before generating the apk file?
There are a few steps to follow in order to generate the Android application file (.apk) from a meteor app:
meteor install-sdk android
Have the mobile-config.js file in your project root (mobile-config.js example)
meteor add-platform android
meteor build ~/your-output-dir --server=yourapp.meteor.com
Then you will have your .apk file in ~/your-output-dir/android/unaligned.apk
If you want to proceed and submit to Google Play Store, here are the steps to follow: https://guide.meteor.com/mobile.html#submitting-android
Hope this helps!
You can build an APK file with meteor build command.
Read more about it in the docs: http://docs.meteor.com/#/full/meteorbuild or by typing meteor help build in your terminal.
Starting with Meteor 1.2, the bundled Android tools have been removed and a system-wide install of the Android SDK is now required. This should make it easier to keep the development toolchain up to date and helps avoid some difficult to diagnose failures. The meteor install-sdk command no longer attempts to download and install the Android tools for you (it has been deprecated and just points you to these instructions).
like imslavko says, meteor build works pretty fine, also if you are looking for more information take a look on this Meteorpedia
It work for me
Reegards
As of now playstore has started giving warning while uploading APK about unoptimised bundle and insisting for uploading Android app bundle.
Insted of generating APK why not generate .aab of your project and reduce size of the application.
For people wondering about how to generate .aab for your existing project can read my blog here:
My blog link

How to run a PhoneGap app with Sqlite in Ripple?

I have a phongap app with a sqlite plugin that runs in both android and iphone. When I try to run it in Ripple i get several errors depending on the inclusion of the cordova version and device I use. Non of them are working at all. In some comments in stackoverflow i've seen people running sqlite in phonegap under ripple.
I'm using the PG-SQLitePlugin-Android plugin in my project, which it acually only supports Phonegap 2.7.0+.
I've found that i can force Ripple to use 2.7.0 by calling it :
file://localhost/Users/----/----/----/www/index.html?enableripple=cordova-2.7.0
Ripple actually loads great after enabling access to file system through chrome.
When i include cordova-2.7.0.js in my script
The index.html pops me a pop up with the following text :
gap:["Device","getDeviceInfo","Device119187522"]
that i can accept or cancel, then 2 more dialogs appeare, if I accept it gets hanged.
the js console shows that cordova 2.7.0 is really running :
Falling back on PROMPT mode since _cordovaNative is missing. Expected for Android 3.2 and lower only. cordova-2.7.0.js:906
deviceready is not fired
When i include cordova-2.9.0.js in my script
It happens the same as 2.7
Falling back on PROMPT mode since _cordovaNative is missing. Expected for Android 3.2 and lower only. cordova-2.7.0.js:906
but this time I get this other errors
Failed to load resource file://localhost/Users/laullobetpayas/-------/---/------/www/cordova/cordova_plugins.json
Failed to load resource file://localhost/Users/-------/---/------/www/cordova/cordova_plugins.js
deviceready is not fired
When I don't include any cordova.js in my script
SQLitePlugin.js:31
Uncaught ReferenceError: cordova is not defined SQLitePlugin.js:34
Am I using the proper plugin ?
which is the propper version of cordova / device tu run with the plugin and ripple ?
Do i have to include the cordova.js in my project
Hel will be very apreciated, it's for a long time that I'm trying to solve this.
Thank you in advanced.
Phonegap plugins won't work with Ripple because the idea of a Phonegap plugin is that it provides a Javascript interface in order to execute native code. That means, in the case of Android, the Javascript will invoke native Java code and in the case of iOS, the Javascript will invoke native Objective-C.
Ripple is purely Javascript-based, so the Javascript part of the plugin has nothing to interface with.
In the case of the SQLitePlugin, for example, calling SQLitePlugin.close() results in the call:
cordova.exec(null, null, "SQLitePlugin", "close", [this.dbname]);
where SQLitePlugin is the native class name and close is the native function name.
If you want to use the same storage API across Android, iOS and Ripple, maybe consider using lawnchair with appropriate adapters.
As for the issues with Ripple and Phonegap 2.7.0/2.9.0, Ripple has not quite caught up with Phonegap, so you will get these popups and error messages in the console, but that will not stop your Phonegap app (without native plugins) running in Ripple. You can convince yourself of this with a simple test case like:
document.addEventListener("deviceready", function(){
alert("I'm alive");
});
But the answer is, yes, you do need to include cordova.js in order for it to work at all in Ripple.
The Cordova-SQLitePlugin is a drop-in replacement for the HTML5 SQL API, so when running inside Ripple you don't need to call the Cordova layer you can just replace calls to sqlitePlugin.openDatabase() with window.openDatabase(). I've not yet tested this with Ripple but it should work. There are some database size limitations but this is probably all you need for testing.
There several ways to test if your inside Cordova. You could create a shim for the openDatabase() method based on testing for Cordova on app startup.
Since your primary goal is really to do rapid testing of SQLite with Cordova (rather than specifically to use Ripple) I'd like to suggest another new alternative to using Ripple.
I wrote an app call Sencha Touch Live that can be used for rapid development of Cordova / HTML5 apps by allowing you to Live Edit and Debug the HTML/JS/CSS code on your mobile device simply by updating files on your development computer - so you can skip most recompile/redeploy/restart debugger time costs. It has tons of other cool features. I'm using it myself for SQLite app testing instead of Ripple or Weinre
Detailed overview and Step by Step Guides
Installation Guide
It's based on the code from Adobe's PhoneGap Developer App so core code is well tested. It's been extensively adapted and tuned for Sench Touch framework though it should also work for jQuery Mobile or any framework that places HTML5 code under the phonegap/www or cordova/www folder. Just start up the server in you PhoneGap or Cordova project folder.
For testing your SQL and controller logic, I recommend using Geny Motion emulator with a version of Android 4.4.x KitKat. Start up an recent version of Chrome on your desktop and once you get your app working on the emulator or real device open chrome://inspect and now you can use the full Chrome debugger on your remote device app. You can also use a recent version of Safari for OSX/iPhone Simulator testing.
You can watch a demo here (starts at the 5 min. mark). Yes! It needs a more polished video with less echoes but you'll get the idea:
https://www.youtube.com/watch?v=94J4HBB0f7I

Xcode cannot run using the selected device

This is the message while trying to run under XCode 4 (it used to work under XCode 3):
No provisioned iOS devices are available. Connect an iOS device or choose an iOS simulator as the destination.
I have profiles for my device for this app... where should I be looking to correct this?
The problem is that your iOS Deployment Target in Project-> Build Settings is different from the current version of iOS on your real device.
You're asking where to find it:
In XCode 4 there is a new button - look for the big
"Organizer button"
which is at the TOP RIGHT.
Physically connect your device and then click Devices. It seems that the new "Organizer button" is one of the "most-missed" things in the transition to XCode4.
Note, the questioner is asking: "WHERE should I be looking to correct this?"
I was having extra trouble because of my Enterprise License, but still updated the iPads. I didn't have to change anything in the Build Settings to lower. But the main thing that I had a problem with was in the Organizer I needed to hit "Use for Development" button.
Kind of an old post, and may not be the best way or a rookie thing to miss but wanted to help anyone out.
My problem similar to those above were related to having the deployment target set too high for the version installed on the phone. Would be nice if it gave a more useful error message. I spent hours messing with my provisioning profile trying to fix it, when the real problem was the older version of the software on the phone.
I had the same problem. The reason was simply, that my ipad had not been update to version 4.3.
This just happened to me for iOS5 with xcode 4.2.
The answer is to go into organiser, select your device, and press the "Develop with this device" button (or similar wording).
Then go back and build, and it should work..
I received this error while having an iPad properly connected.
Some info:
Ipad iOS version: 4.2.1
XCode 4.2
XCode project created with "iOS Application / Empty Application" template.
The problem was that I had to specify the "iOS Deployment Target" to 4.2 in more than one place!
That is, both in the "Build Settings" and in the "Summary".
Very odd, and definitely another XCode4 annoyance.
I got this error in Organizer - "Could not support development.". I tried rebooting the iOS device and it worked for me :)
Check that the Executable File (also known as CFBundleExecutable) in the Info.plist file is set to ${EXECUTABLE_NAME} as opposed to any hardcoded value. This will ensure that even if you change your project name or target name or scheme name, that it still works.
you need to install the proper version of iOS.in my case it is iOS 4.0 - 4.1 Device Debugging Support
GOTO --> XCode Preferences -> Downloads --> Component
there are all updates available for your iOS click Install.
This is works for me.
It looks like this error can also come about if the "Product Name" in your target's build settings does not match the value of "CFBundleExecutable" in your info.plist
It looks like to me this is the general error Apple gives if the executable is not installed correctly on the device. When the debugger tries to attach it looks for the executable name and if it's not there they give this error. Touch one to debug.
Go to build option and select valid compiler.
Chose your right iOS Deployment version

Resources