tidev / ti.playservices

Titanium module for Google Play Services
19 stars 12 forks source link
appcelerator axway google-play-services javascript native titanium titanium-module

ti.playservices

To provide Google Play Services for Titanium modules and applications

Requirements

Example

Add the module as a dependency to your application by adding a <module> item to the <modules> element of your tiapp.xml file:

<ti:app>
  ...
  <modules>
    <module platform="android">ti.playservices</module>
  </modules>
  ...
</ti:app>

Use require() to access the module from JavaScript:

    const PlayServices = require('ti.playservices');

The PlayServices variable is a reference to the module. Make API calls using this reference:

    const playServicesAvailable = PlayServices.isGooglePlayServicesAvailable();

As of version 17.1.0 (only supported by Titanium Mobile SDK 9.0.0 and above), the ti.playservices module will automatically check if Google Play Services is installed and up-to-date on the device upon app startup. If not, the module will prompt the end-user to install/update it. The main app script (ie: app.js or alloy.js) will not be executed until the end-user has successfully installed/updated Google Play Services or if it is already up-to-date.

If you do not want ti.playservices to check Google Play Services on app startup, then you can disable the above mentioned behavior by setting the below property in the tiapp.xml file.

<ti:app xmlns:ti="http://ti.appcelerator.org">
    <property name="ti.playservices.validate.on.startup" type="bool">false</property>
</ti:app>

If you disable the above behavior, then it is highly recommended to detect availability issues yourself as shown below.

const PlayServices = require('ti.playservices');

const win = Ti.UI.createWindow({ backgroundColor: 'gray' });
const btn = Ti.UI.createButton({ title: 'CHECK PLAY SERVICES' });

btn.addEventListener('click', () => {
    PlayServices.makeGooglePlayServicesAvailable((e) => {
        if (e.success) {
            alert(`Play Services: ${PlayServices.GOOGLE_PLAY_SERVICES_VERSION_CODE}`);
            // Use Play Services
        } else {
            alert(`Play Services is not available.`);
        }
    });
});

win.add(btn);
win.open();

To include Play Services libraries with your native module include the module as a dependency by adding a <module> item to the <modules> element of your timodule.xml file:

<ti:module>
  ...
  <modules>
    <module platform="android">ti.playservices</module>
  </modules>
  ...
</ti:module>

For a detailed API example please see android/example/app.js

Build

  1. Create a lib folder in the android directory
  2. Run npm install node . from the updater directory
  3. Run npm install && node . from the updater directory
  4. Run appc run -p android --build-only from the android directory

Author

Axway

License

Apache 2.0

Contributing

Code contributions are greatly appreciated, please submit a new pull request!