1

MainActivity.java code here:

package com.example.webrivers.controlmarketing;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class MainActivity extends ActionBarActivity {
private WebView myWebView;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    myWebView = (WebView)findViewById(R.id.webView);
    WebSettings webSettings = myWebView.getSettings();
    webSettings.setJavaScriptEnabled(true);
    myWebView.loadUrl("http://domainname");
    myWebView.setWebViewClient(new WebViewClient());
 }

   @Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.menu_main, menu);
    return true;
}

@Override
public boolean onPrepareOptionsMenu(Menu menu) {
    return false;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {

    int id = item.getItemId();

    return super.onOptionsItemSelected(item);
}
}

I am using website to android conversion in android 2.3.3 version, cannot visible input file browse option in android web view. Please Give Any idea.,

1 Answers1

1

You can't access Files of mobile directly you need runtime permissions in manifests

<uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_INTERNAL_STORAGE" />

//Here is your code Approprite changes will allow you to access files from mobile.

  package com.example.webrivers.controlmarketing;

  import android.support.v7.app.ActionBarActivity;
  import android.os.Bundle;
  import android.view.Menu;
  import android.view.MenuItem;
  import android.webkit.WebSettings;
  import android.webkit.WebView;
  import android.webkit.WebViewClient;

 public class MainActivity extends ActionBarActivity {
 private WebView myWebView;
 String FileString = "";

@SuppressLint("SetJavaScriptEnabled")
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    myWebView = (WebView) findViewById(R.id.webView);
    WebSettings webSettings = myWebView.getSettings();
    webSettings.setJavaScriptEnabled(true);
    myWebView.loadUrl("http://domainname");
    myWebView.setWebViewClient(new WebViewClient());
    fixWebViewJSInterface(webView, new clsJScriptInterface(MainActivity.this), "app", "_gbjsfix");
}

@SuppressLint("JavascriptInterface")
public void fixWebViewJSInterface(WebView webview, Object jsInterface, String jsInterfaceName, String jsSignature) {
    webview.addJavascriptInterface(jsInterface, jsInterfaceName);

}

public class clsJScriptInterface {
    private final Context context;

    public clsJScriptInterface(Context paramContext) {
        this.context = paramContext;
    }

    @JavascriptInterface
    public String Uploadfile() {
    //This method will create in your js in website which will accepts string;
        try {

        } catch (Exception ex) {

            ex.printStackTrace();
        }

        return FileString;

    }


}


@Override
protected void onActivityResult(int reqCode, int resultCode, Intent data) {
    super.onActivityResult(reqCode, resultCode, data);


    if (resultCode == RESULT_OK) {
        try {

    //here you can write code for fatch files form gallary and convert in appropriate format this will be your FileString to send to website.
        } catch (FileNotFoundException e) {
            e.printStackTrace();

        }

    }
}


@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.menu_main, menu);
    return true;
}

@Override
public boolean onPrepareOptionsMenu(Menu menu) {
    return false;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {

    int id = item.getItemId();

    return super.onOptionsItemSelected(item);
  }
}
jakir hussain
  • 316
  • 2
  • 18