如何使用NativeScript访问Google Play服务

时间:2016-11-16 12:02:02

标签: android google-play-services nativescript

我目前正在使用NativeScript。 我正在尝试将某些Google Play服务包含在Android项目中。 我将相关的.aar文件放入我的应用程序项目的node_modules /文件夹中并构建它。我可以看到它们已成功添加到项目中。

  

:config阶段:copyAarDependencies

select      SUM(user.points) AS TOTAL

from       (SELECT user.points 
            FROM user
            ORDER BY user.points DESC
            LIMIT 2
            ) user

但我似乎无法找到一个教程,告诉我如何从NativeScript访问他们的类和模块。 我尝试过这样的事情:

:config phase:  addAarDependencies
        +adding dependency: C:\Users\pstueven\NativeScript\sample-Groceries\platforms\android\libs\aar\play-services-9.0.0.aar
        +adding dependency: C:\Users\pstueven\NativeScript\sample-Groceries\platforms\android\libs\aar\play-services-base-9.0.0.aar
        +adding dependency: C:\Users\pstueven\NativeScript\sample-Groceries\platforms\android\libs\aar\play-services-basement-9.0.0.aar

但它们都不起作用。它们如何包含在NativeScript的上下文中?或者不是吗? 有人有提示如何实现这个目标吗?

1 个答案:

答案 0 :(得分:3)

在为Angular开发时,如果在Jcenter / Maven存储库(适用于Android插件的存储库,非常类似于所有JavaScript的npmjs)或本地Android SDK中提供库/插件,则在NativeScript中进行开发安装,然后您可以在App_Resources/Android/app.gradle文件中引用该依赖项。

示例:

dependencies {
    compile 'com.google.android.gms:play-services:9.0.0'
}

android {  
  defaultConfig {  
    generatedDensities = []
    applicationId = "org.nativescript.myApp"  
  }  
  aaptOptions {  
    additionalParameters "--no-version-vectors"  
  }  
} 

构建时,这些依赖项将被下载并正确添加到项目中,以便您可以在应用程序中使用它们。

下一步,您可能想要了解要使用的库的用法。这很可能是API Docs网站或Android / Java代码示例。在NativeScript中,您可以像编写本机应用程序一样访问Native API。这意味着“翻译”您在样本中找到的代码应该几乎毫不费力。您可以在官方文档网站上找到足够的信息来帮助您入门。

https://docs.nativescript.org/runtimes/android/marshalling/java-to-js https://docs.nativescript.org/runtimes/android/metadata/accessing-packages.html

说完所有这些 - 回到你的代码示例 - 你试图实例化的类是抽象的,这意味着你只能创建该类的非抽象非静态后代的实例(https://developers.google.com/android/reference/com/google/android/gms/common/api/GoogleApiClient

如果您要在NativeScript中编写它,但是为了示例,我们假设我们可以创建实例,我们会像这样编写它 - > var apiClient = new com.google.android.gms.common.api.GoogleApiClient();

祝你好运!