I am developing one android web app.So i inserted web view and load URL in web view. Following is the code of web view activity.
MainActivity.java
public class MainActivity extends AppCompatActivity {
WebView editor;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editor = (WebView) findViewById(R.id.editer_webview);
WebSettings webSettings = editor.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setPluginState(WebSettings.PluginState.ON);
webSettings.setAllowFileAccess(true);
webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
webSettings.setBuiltInZoomControls(true);
webSettings.setUseWideViewPort(true);
webSettings.setLoadWithOverviewMode(true);
editor.setInitialScale(1);
editor.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
editor.setScrollbarFadingEnabled(false);
editor.setWebViewClient(new WebViewClient());
editor.setWebChromeClient(new WebChromeClient());
editor.loadUrl("http://elabprint.com/SampleEditor/");
}
@Override
public void onBackPressed() {
if (editor.canGoBack()) {
editor.goBack();
} else {
super.onBackPressed();
}
}
}
The main problem is that there is button in Jsp file.when i click on that button it will ask to open gallery.That button works fine in google Chrome browser.but Button doesnt work in my web app webview. Following is the code from my jsp page.
<button type="button" class="btn-sm btn-primary" id="fakeBrowse123" onclick="HandleBrowseClick5();">Upload Image</button>
function HandleBrowseClick5()
{
var obj = canvas.getActiveObject();
if (!obj) {
alert("Select Object.");
} else {
if (obj.isType('image')) {
var fileinput = document.getElementById("tempImgLoader");
fileinput.click();
SelectImg();
}
}
}
document.getElementById('tempImgLoader').onchange = function handleImage1(e) {
var files = e.target.files;
if (files[0].size / 1024 >= 100.00) {
var reader = new FileReader();
reader.onload = function (event) {
console.log('fdsf');
var imgObj = new Image();
imgObj.src = event.target.result;
imgObj.onload = function () {
var wt1 = this.width;
var ht1 = this.height;
if (wt1 < 150 || ht1 < 150) {
alert("low quality image!!!..");
}
if (wt1 < 550 && ht1 < 400) {
canvas11.setWidth(wt1);
canvas11.setHeight(ht1);
}
if (wt1 > 550 && ht1 > 400) {
ht2 = 370;
wt2 = (wt1 * 370) / ht1;
canvas11.setWidth(wt2);
canvas11.setHeight(ht2);
}
if (wt1 < 550 && ht1 > 400) {
ht2 = 400;
wt2 = (wt1 * 400) / ht1;
canvas11.setWidth(wt2);
canvas11.setHeight(ht2);
}
if (wt1 > 550 && ht1 < 400) {
wt2 = 550;
ht2 = (ht1 * 550) / wt1;
canvas11.setWidth(wt2);
canvas11.setHeight(ht2);
}
document.getElementById('openerImg').click();
canvas.backgroundColor = '';
var height1 = canvas11.height;
var width1 = canvas11.width;
var image = new fabric.Image(imgObj);
image.set({
width: width1,
height: height1
});
canvas11.setBackgroundImage(image, canvas11.renderAll.bind(canvas11));
};
};
reader.readAsDataURL(e.target.files[0]);
} else {
alert("Image size must be greater than 100KB");
}
};
function SelectImg() { // function for select area for cropping image
var obj = canvas.getActiveObject();
canvas11.clear();
canvas11.add(new fabric.Rect({
left: 5, top: 5,
width: obj.width / 2,
height: obj.height / 2,
fill: 'transparent',
stroke: '#000000',
hasRotatingPoint: false,
strokeDashArray: [5, 5],
cornerSize: 5,
padding: 0,
cornerColor: 'black',
borderColor: 'white',
transparentCorners: false
}));
canvas11.item(0).setControlsVisibility({
mt: false, // middle top disable
mb: false, // midle bottom
ml: false, // middle left
mr: false
});
canvas11.setActiveObject(canvas11.item(0));
}
I cant find solution for opening gallery in my app webview.i dont know where is the problem.does the problem at JSp page or Android project.
Please give the solution to access images in android app webview.
Please help me sir