I made a Web App in asp.net which scans QR Codes. I used jquery plugin minhazav qr code reader. It works fine with all the browsers like chrome, safari, opera etc.
Now I wanted to convert it to mobile app and I chose solar2D platform.
I used Native NewWebView to load my Web App. Everything works fine but when I try to open scanner page QR Code Reader, it shows permission denied. Can anybody tell me what's wrong with it.
Why this works with chrome and other browsers but not in native.newWebView?
HTML
<div class="col-xs-12 col-sm-12 col-md-8 col-lg-6" id="reader" style="margin-left: auto; margin-right: auto"></div>
<div class="form-group floating-form-group">
<input type="text" id="txtLink" class="form-control floating-input" disabled="disabled" />
</div>
<a href="javascript:void" class="mt-4 btn btn-info btn-block btn-lg btnProceed">Proceed</a>
JS
function onScanSuccess(decodedText, decodedResult)
{
$("#txtLink").val(decodedText);
$(".btnProceed").attr("href", decodedText);
}
function onScanError(errorMessage) {
alert('Some Error');
}
var html5QrcodeScanner = new Html5QrcodeScanner("reader", { fps: 10, qrbox: 200 });
html5QrcodeScanner.render(onScanSuccess, onScanError);
SOLAR 2D
BUILD SETTINGS
settings = {
android =
{
usesPermissions =
{
"android.permission.INTERNET",
"android.permission.CALL_PHONE",
"android.permission.CAMERA",
"android.permission.WRITE_EXTERNAL_STORAGE",
"android.permission.ACCESS_WIFI_STATE",
"android.permission.READ_PHONE_STATE",
"android.permission.ACCESS_NETWORK_STATE",
},
usesFeatures =
{
{ name = "android.hardware.camera", required=true },
{ name = "android.hardware.location", required = false },
{ name = "android.hardware.location.gps", required = false },
{ name = "android.hardware.location.network", required = false },
},
},
orientation = {
default = "portrait"
},
}
Any help would be highly appreciated.
Thank you,
I tried to force camera permissions once the app loads. It shows a prompt that, this app requires camera access to capture photos or record videos. But this didn't work either.
local function appPermissionsListener( event )
for k,v in pairs( event.grantedAppPermissions ) do
if ( v == "Camera" ) then
print( "Camera permission granted!" )
end
end
end
local options =
{
appPermission = "Camera",
urgency = "Critical",
listener = appPermissionsListener,
rationaleTitle = "Camera access required",
rationaleDescription = "Camera access is required to take photos. Re-request now?",
settingsRedirectTitle = "Alert",
settingsRedirectDescription = "Without the ability to take photos, this app cannot properly function. Please grant camera access within Settings."
}
native.showPopup( "requestAppPermission", options )
Now I am completely clueless.