import * as application from 'application';
const TnsOneSignal = require('nativescript-onesignal').TnsOneSignal
if (application.android) {
application.on(application.launchEvent, function(args: application.ApplicationEventData) {
try {
console.log('TnsOneSignal', TnsOneSignal)
TnsOneSignal.startInit(application.android.context).init()
} catch (error) {
console.log('error', error)
}
})
}
我尝试使用上面的代码和插件,但它不起作用..
任何人都可以帮助我的代码或提供更好的解决方案!
要获得当前手机的信号强度,您可以使用Android和iOS上的原生API,并根据NativeScript's marshaling rules将代码转换为JavaScript。
例如,让我们拿这个native solution。以下是NativeScript中的样子
let telephonyManager = application.android.context.getSystemService(android.content.Context.TELEPHONY_SERVICE);
let cellinfogsm = telephonyManager.getAllCellInfo().get(0);
let cellSignalStrengthGsm = cellinfogsm.getCellSignalStrength();
cellSignalStrengthGsm.getDbm();
当然,在Android中,为了能够获取此信息,您需要明确的ACCESS_COARSE_LOCATION
权限,以便您可以使用nativescript-permissions
plugin来授予它们。
Here you can find a test project展示了上述技术。基于相同的原理,您可以找到一个iOS示例,并使用从Objective-C到JS的编组将代码转换为JS。