I added Nativescript inAppBrowser plugin to my nativescript core(javascript) project. i copied the code as it is in the documentation into my project, but it wasnt working (i'm guessing because its written in typescript) so i edited the code.
Now, i'm getting the error InAppBrowser.isAvaialble
is not a function
this is my javascript code
const openUrl = require("tns-core-modules/utils/utils").openUrl;
const alert = require("tns-core-modules/ui/dialogs").alert;
const InAppBrowser = require("nativescript-inappbrowser");
videoCall: function (args) {
try {
const url = "https://example.com";
if (InAppBrowser.isAvailable()) {
const result = InAppBrowser.open(url, {
// iOS Properties
dismissButtonStyle: 'cancel',
preferredBarTintColor: '#453AA4',
preferredControlTintColor: 'white',
readerMode: false,
animated: true,
modalPresentationStyle: 'fullScreen',
modalTransitionStyle: 'partialCurl',
modalEnabled: true,
enableBarCollapsing: false,
// Android Properties
showTitle: true,
toolbarColor: '#6200EE',
secondaryToolbarColor: 'black',
enableUrlBarHiding: true,
enableDefaultShare: true,
forceCloseOnRedirection: false,
// Specify full animation resource identifier(package:anim/name)
// or only resource name(in case of animation bundled with app).
animations: {
startEnter: 'slide_in_right',
startExit: 'slide_out_left',
endEnter: 'slide_in_left',
endExit: 'slide_out_right'
},
headers: {
'my-custom-header': 'MVM'
}
})
alert({
title: 'Response',
message: JSON.stringify(result),
okButtonText: 'Ok'
})
}
else {
openUrl(url);
}
}
catch(error) {
alert({
title: 'Error',
message: error.message,
okButtonText: 'Ok'
})
}
},
You can compare it to the one in the documentation to see if there's anything i'm doing wrong, thanks in advance
Your function needs to be
async
and you need to haveawait
in front of all calls to InAppBrowser.