我想在我的NativeScript应用中使用本机Android代码来检查在Play Store是否有更新。我正在使用官方的Android文档 支持应用内更新Android。以下是本机Java代码:
// Creates instance of the manager.
AppUpdateManager appUpdateManager = AppUpdateManagerFactory.create(context);
// Returns an intent object that you use to check for an update.
Task<AppUpdateInfo> appUpdateInfoTask = appUpdateManager.getAppUpdateInfo();
// Checks that the platform will allow the specified type of update.
appUpdateInfoTask.addOnSuccessListener(appUpdateInfo -> {
if (appUpdateInfo.updateAvailability() == UpdateAvailability.UPDATE_AVAILABLE
// For a flexible update, use AppUpdateType.FLEXIBLE
&& appUpdateInfo.isUpdateTypeAllowed(AppUpdateType.IMMEDIATE)) {
// Request the update.
}
});
原生脚本代码如下所示:
import { Injectable } from '@angular/core';
import { ad as androidUtilities } from 'tns-core-modules/utils/utils';
declare const com: any;
@Injectable({
providedIn: 'root'
})
export class AppUpdateService {
constructor() {
}
public checkForUpdate() {
try {
const context = androidUtilities.getApplicationContext();
const appUpdateManager = com.google.android.play.core.appupdate.AppUpdateManagerFactory.create(context);
appUpdateManager.getAppUpdateInfo().addOnSuccessListener(appUpdateInfo => {
});
} catch (err) {
console.log('Err in checkForUpdate() : ', err);
}
}
}
我遇到了以下错误:
JS: checkForUpdate() 中的错误:Error: 无法将对象转换为Lcom/google/android/play/core/tasks/OnSuccessListener;在索引0处
有人能告诉我我做错了什么吗?
OnClickListener
一样。 - Manoj