【问题标题】:How to access Google Play Services in NativeScript如何在 NativeScript 中访问 Google Play 服务
【发布时间】:2017-03-30 15:00:52
【问题描述】:

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

:配置阶段:copyAarDependencies

: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 访问他们的类和模块。 我试过这样的事情:

var test = new main.java.com.google.android.gms.common.api.GoogleApiClient();

var test = new com.google.android.gms.common.api.GoogleApiClient();

var test = new android.gms.common.api.GoogleApiClient();

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

【问题讨论】:

    标签: android google-play-services nativescript


    【解决方案1】:

    在 NativeScript 中为 Angular 开发时,如果库/插件在 Jcenter/Maven 存储库(Android 插件的存储库,很像用于所有 JavaScript 的 npmjs)或在您的本地 Android SDK 安装中可用,那么您可以在您的 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();

    祝你好运!

    【讨论】:

    • 当然可以!无论您使用 Angular、TypeScript 还是纯 JavaScript 进行开发,开发体验都不会更好,也不会更差!如果您觉得答案有用,请点赞。
    • 我做了,但它不公开可见,因为我在这里太新了;)
    猜你喜欢
    • 2015-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多