Note that there are some explanatory texts on larger screens.

plurals
  1. POAndroid Webview irregular loading issue
    primarykey
    data
    text
    <p>Hi I would like to have an explanation regarding the following code. Here Sometimes my javascript functtion is working and sometime it is not. As a result, I don't really know where is the problem. Here my index.html file automatically loads a map position. Then I call the javascript function with current lat,lng as argument. SO, initially it loads the by default map. Then the map should be overridden by the javascript function. The problem is sometimes it happens and sometimes it doesn't. So, I would like to have an answer regarding this. </p> <pre><code>public class MapOptionsDemoModified extends Activity{ //Geocoder geocoder; WebView mWebView; LocationManager mlocManager=null; LocationListener mlocListener; private MyLocationOverlay myLocationOverlay; protected MapView map; private RadioButton mapButton; private RadioButton satelliteButton; private ToggleButton trafficToggle; private ToggleButton labelsToggle; private Configuration config; EditText LOC; Button routesbtn,settingsbtn; public String location="State Street" double lati,longi; GeoPoint currentLocation; double curlat,curlong; InputMethodManager imm; //String adrs; double latitude=40.07546; double longitude=-76.329999; String adrs=""; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.map_options_modified); lati=34.1161; longi=-118.149399; adrs=""; routesbtn=(Button)findViewById(R.id.mom_bt2); mlocManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE); mlocListener = new MyLocationListener(); mlocManager.requestLocationUpdates( LocationManager.GPS_PROVIDER, 0, 0, mlocListener); mlocManager.isProviderEnabled(LocationManager.GPS_PROVIDER); mWebView = (WebView) findViewById(R.id.webview); WebSettings webSettings = mWebView.getSettings(); webSettings.setJavaScriptEnabled(true); mWebView.loadUrl("file:///android_asset/index.html"); //mWebView.loadUrl("http://www.google.com"); webSettings.setBuiltInZoomControls(true); webSettings.setSupportZoom(true); imm=(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); /* taking data from caller activity page */ // ###################Receiving data starts Bundle extras = getIntent().getExtras(); if (extras == null) { return; } lati=extras.getDouble("latitude"); longi = extras.getDouble("longitude"); adrs=extras.getString("adrs"); // ##### Receiving data ends AlertDialog.Builder pdb=new AlertDialog.Builder(MapOptionsDemoModified.this); pdb.setTitle("GPS"); pdb.setMessage(adrs+" "+Double.toString(lati)+" "+Double.toString(longi)); pdb.setPositiveButton("Ok", null); pdb.show(); mWebView.loadUrl("javascript:getCurrentLocation("+lati+","+longi+")"); routesbtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if(mlocManager.isProviderEnabled(LocationManager.GPS_PROVIDER)){ //while(j&lt;cnt) //{ mlocManager.requestLocationUpdates( LocationManager.GPS_PROVIDER, 0, 0, mlocListener); if(MyLocationListener.latitude&gt;0) { latitude=MyLocationListener.latitude; longitude=MyLocationListener.longitude; //flag=1; Geocoder gcd = new Geocoder(MapOptionsDemoModified.this, Locale.getDefault()); List&lt;Address&gt; addresses; try { addresses = gcd.getFromLocation(latitude,longitude, 5); if (addresses.size() &gt; 0) { adrs=addresses.get(0).getAddressLine(0)+" "+addresses.get(0).getAddressLine(1)+" "+addresses.get(0).getAddressLine(2); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } //break; finish(); Intent i = new Intent(MapOptionsDemoModified.this,RoutesPageOne.class); i.putExtra("adrs", adrs); i.putExtra("latitude", latitude); i.putExtra("longitude", longitude); startActivity(i); } else { AlertDialog.Builder pdb=new AlertDialog.Builder(MapOptionsDemoModified.this); pdb.setTitle("GPS"); pdb.setMessage("GPS activation in progress"); pdb.setPositiveButton("Ok", null); pdb.show(); } //} } else { AlertDialog.Builder pdb=new AlertDialog.Builder(MapOptionsDemoModified.this); pdb.setTitle("GPS"); pdb.setMessage("GPS is not turned on..., please start gps"); pdb.setPositiveButton("Ok", null); pdb.show(); } } }); LOC=(EditText)findViewById(R.id.mom_editText1); LOC.setOnKeyListener(new OnKeyListener() { @Override public boolean onKey(View v, int keyCode, KeyEvent event) { // TODO Auto-generated method stub location = LOC.getText().toString(); if (keyCode == KeyEvent.KEYCODE_ENTER &amp;&amp; location.length() &gt; 0) { LOC.setText(""); imm.hideSoftInputFromWindow(LOC.getWindowToken(), 0); mWebView.loadUrl("javascript:getLocation('" + location + "')"); /*AlertDialog.Builder edb=new AlertDialog.Builder(MapOptionsDemoModified.this); edb.setTitle("gps"); edb.setMessage(location+" lat= "+lati+" long="+longi); edb.setPositiveButton("Ok", null); edb.show();*/ //searchBarcode(barcode); return true; } return false; } }); //imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0); getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); mWebView.setWebViewClient(new HelloWebViewClient()); private class HelloWebViewClient extends WebViewClient { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } } public boolean onKeyDown(int keyCode, KeyEvent event) { if ((keyCode == KeyEvent.KEYCODE_BACK) &amp;&amp; mWebView.canGoBack()) { mWebView.goBack(); return true; } return super.onKeyDown(keyCode, event); } } </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload