我目前正在开始使用 NativeScript。 我正在尝试将某些 Google Play 服务包含到 android 项目中。 我将相关的 .aar 文件放入我的应用程序项目的 node_modules/文件夹中并构建它。我可以看到它们已成功添加到项目中。
:config phase: 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 的上下文中?或者不是吗? 有没有人知道如何实现这一目标?
最佳答案
在为 Angular 开发 NativeScript 时,如果 Jcenter
/Maven
库/插件可用(Android 插件的库,很像 npmjs 的所有 JavaScript),或者在您本地的 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 文档站点或 Android/Java 代码示例。在 NativeScript 中,您可以像编写 native 应用程序一样访问 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();
祝你好运!
关于android - 如何在 NativeScript 中访问 Google Play 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40631695/