рд╣рдо рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП рд╣реИрдмрд░ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╛рдЗрдВрдЯ рд▓рд┐рдЦрддреЗ рд╣реИрдВ

рдЖрдЧреЗ рджреЗрдЦрддреЗ рд╣реИрдВ, рдРрд╕рд╛ рд╣реА рд╣реБрдЖ:
рдЫрд╡рд┐


00:56ред рдореИрдВ рдпрд╣ рдПрдХ рд╡рд┐рд╖рдп (рдЗрддрдирд╛ рджрд┐рд▓рдЪрд╕реНрдк) рд▓рд┐рдЦрдиреЗ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдХрд░реВрдВрдЧрд╛ред рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рджреМрд░рд╛рди рд╕рднреА рдЪрд░рдгреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рддреЗ рд╣реБрдПред рдЗрд╕рд▓рд┐рдП, рд╣рдордиреЗ рдзреВрдореНрд░рдкрд╛рди рдХрд┐рдпрд╛, рдЪрд╛рдп рдкреА, рдПрдХ рдкреНрд▓реЗрд▓рд┐рд╕реНрдЯ рддреИрдпрд╛рд░ рдХреА, рдФрд░ рдЬрдм рдЪрд╛рдп рдардВрдбреА рд╣реЛ рдЧрдИ - рд╣рдо рдЬрд╛рдВрдЪрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдирд╛рдо рд╣рдмреНрдмрд░ рдмрд╛рдЬрд╛рд░ рдореЗрдВ рд╡реНрдпрд╕реНрдд рд╣реИред рдареАрдХ рд╣реИ, рдЪрд▓реЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВред

13:02 рд╣рдо рдПрдХ рдирдпрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВред
рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ

рдПрдкреАрдЖрдИ рд╕реНрддрд░ 4 рд╣реИ, рдЗрд╕ рдХрд╛рд░рдг рд╕реЗ рдХрд┐ рдЫреЛрдЯреЗ рдореВрд▓реНрдп рдХреЗ рд╕рд╛рде - рд╕реИрдорд╕рдВрдЧ рдЧреИрд▓реЗрдХреНрд╕реА рдЯреИрдм рдЯреИрдмрд▓реЗрдЯ рдкрд░, рд╕реНрдХреНрд░реАрди рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдЧрд▓рдд рд╣реЛрдЧрд╛ рдФрд░ рдЗрди рдЪрдорддреНрдХрд╛рд░ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рдорд╛рд▓рд┐рдХ рдЖрдкрдХреЗ рд▓рд┐рдП рдмрд╛рдЬрд╛рд░ рдореЗрдВ minuses рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдбрд╛рд▓рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рдирд╣реАрдВ рд╣реЛрдВрдЧреЗ (рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдпрд╣ рдбреЗрд╡рд▓рдкрд░ рдХреА рдПрдХ рдХреИрдВрдЯ рд╣реИ)ред

13:08 рдлрд┐рдХреНрдХреА рдШреЛрд╖рдгрд╛рдкрддреНрд░ред
рджреЛ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
- Android: configChanges = "рдУрд░рд┐рдПрдВрдЯреЗрд╢рди", рдЗрд╕ рд▓рд╛рдЗрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЬрдм рдЖрдк рд╕реНрдХреНрд░реАрди рдУрд░рд┐рдПрдВрдЯреЗрд╢рди рдХреЛ рдмрджрд▓рддреЗ рд╣реИрдВ рддреЛ рд╣рдорд╛рд░реА рдЧрддрд┐рд╡рд┐рдзрд┐ рдирд╖реНрдЯ рди рд╣реЛред
- <рдЙрдкрдпреЛрдЧ-рдЕрдиреБрдорддрд┐ рдПрдВрдбреНрд░реЙрдЗрдб: рдирд╛рдо = "android.permission.INTERNET" />, рдЗрдВрдЯрд░рдиреЗрдЯ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдорддрд┐ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░реЗрдВ
AndroidManifest
* рдлреНрд░рдВрдЯ 242 рдирд┐рднрд╛рддрд╛ рд╣реИ - рд╣реЗрдбрд╣рдВрдЯрд░ v3.0

13:13 рдлрд╝рд┐рдХреНрд╕рд┐рдо рд▓реЗрдЖрдЙрдЯред
рд╕рдм рдХреБрдЫ рдорд┐рдЯрд╛ рджреЗрдВ рдФрд░ рдПрдХ рдПрдХрд▓ рддрддреНрд╡ рдЬреЛрдбрд╝реЗрдВ - рд╡реЗрдмрд╡реНрдпреВ - рдкреВрд░реНрдг рд╕реНрдХреНрд░реАрди

13:16 рдЖрдЗрдХрдиред
рдлрд╛рдпрд░рдмреЙрдЧ рдХреА рдорджрдж рд╕реЗ, рд╣рдо рдирд┐рд░рдкреЗрдХреНрд╖ рд▓рд┐рдВрдХ рдХреЛ рдЯреНрд░рд┐рдо рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдлрд╝реЛрдЯреЛрд╢реЙрдк рдХреА рдорджрдж рд╕реЗ рд╣рдо 48 * 48 рдкреАрдПрдХреНрд╕ рддрдХ рдлрд╕рд▓ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд░реЗрд╕ / рдбреНрд░реЙрдмрд▓ рдореЗрдВ рдлреЗрдВрдХ рджреЗрддреЗ рд╣реИрдВ ...

13:27 рдЖрдЗрдХрди рдХреЗ рд╕рд╛рде, рд╕рдм рдХреБрдЫ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реЛ рдЧрдпрд╛ред рдХрдореА рдХреЗ рдмрд╛рдж рд▓реЛрдЧреЛ рдХрд╛ рджрд╛рдЧ рдХреАрдЪрдбрд╝ рдореЗрдВ рдмрджрд▓ рдЧрдпрд╛, рдореБрдЭреЗ рдЧреВрдЧрд▓ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рд▓реЗрдЦрдХ рдирд╛рд░рд╛рдЬ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред

рдареАрдХ рд╣реИ, рд╣рдордиреЗ рд╕рдмрд╕реЗ рдХрдард┐рди рдХрд╛рдо рдкреВрд░рд╛ рдХрд┐рдпрд╛ рд╣реИ, рдЖрдЦрд┐рд░рдХрд╛рд░ рдЖрдк рдШреВрдо рд╕рдХрддреЗ рд╣реИрдВред

13:39 рд╣реИрдмрд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ
public class habr extends Activity {

private WebView wv;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

wv = (WebView) findViewById(R.id.wv);

WebSettings webSettings = wv.getSettings();
webSettings.setSavePassword( true );
webSettings.setSaveFormData( true );
webSettings.setJavaScriptEnabled( true );

wv.loadUrl( "http://habrahabr.ru" );
}
}


* This source code was highlighted with Source Code Highlighter .


* рдпрд╣рд╛рдВ рд╣рдо рдХреЗрд╡рд▓ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рдпрд╛рдж рд░реВрдкреЛрдВ / рдкрд╛рд╕рд╡рд░реНрдб рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдмреНрд░ рдкрд░ рдЕрдкрдирд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдЕрднреА рдХреЗ рд▓рд┐рдП рдмрджрд╕реВрд░рдд рд▓рдЧ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред рдзреБрдЖрдВ рдЯреВрдЯрдирд╛ред

13:53 рд╣рдо рдмрд╛рддрдЪреАрдд рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реИрдВред

public class habr extends Activity {

private WebView wv;
private String LASTURL = "" ;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this .getWindow().requestFeature(Window.FEATURE_PROGRESS);
setContentView(R.layout.main);

wv = (WebView) findViewById(R.id.wv);

WebSettings webSettings = wv.getSettings();
webSettings.setSavePassword( true );
webSettings.setSaveFormData( true );
webSettings.setJavaScriptEnabled( true );

final Activity activity = this ;

wv.setWebChromeClient( new WebChromeClient() {
public void onProgressChanged(WebView view, int progress)
{
activity.setTitle( " " +LASTURL);
activity.setProgress(progress * 100);

if (progress == 100)
activity.setTitle( " " +LASTURL);
}
});
wv.setWebViewClient( new WebViewClient() {
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
Toast.makeText(getApplicationContext(), "Error: " + description+ " " + failingUrl, Toast.LENGTH_LONG).show();
}

@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
if (url.indexOf( "habrahabr" )<=0) {
// the link is not for a page on my site, so launch another Activity that handles URLs
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(intent);
return true ;
}
return false ;
}

public void onPageStarted (WebView view, String url, Bitmap favicon) {
LASTURL = url;
}

public void onPageFinished (WebView view, String url) {

}
});

wv.loadUrl( "http://habrahabr.ru" );
}
}


* This source code was highlighted with Source Code Highlighter .


рдЗрд╕рд▓рд┐рдП, рд╣рдореЗрдВ рдПрдХ рд▓реЛрдбрд┐рдВрдЧ рдерд░реНрдорд╛рдореАрдЯрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
1. рд╣рдо рдПрдХ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддреЗ рд╣реИрдВ: this.getWindow ()ред RequestFeature (Window.FEATURE_PROGRESS);
2. рдкреНрд░рдЧрддрд┐рд╢реАрд▓рддрд╛ рдкрд░ - рдерд░реНрдорд╛рдореАрдЯрд░ рдЦрд┐рдбрд╝рдХреА рднрд░реЗрдВ
activity.setTitle ("" + LASTURL);
activity.setProgress (рдкреНрд░рдЧрддрд┐ * 100);
if (рдкреНрд░рдЧрддрд┐ == 100) рдЧрддрд┐рд╡рд┐рдзрд┐ .setTitle ("" + LASTURL);
3. рд▓реЛрдб рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ, рдЪрд░ рдХреЛ рдпрд╛рдж рд░рдЦреЗрдВ LASTURL = url;

рд╣рдо рдСрдирд░рд╛рдЗрдЬрд╝реНрдб рдПрд░рд░ рдкрд░ рдЧрд┐рд░реЗ рд╣реБрдП рд╡рд╛рдИ-рдлрд╛рдИ рдХреЛ рдкреНрд░реЛрд╕реЗрд╕ рдХрд░рддреЗ рд╣реИрдВ:
Toast.makeText (getApplicationContext (), "Error:" + description + "" + failingUrl, Toast.LENGTH_LONG) .show ();
(рдПрдХ рд╕рдВрджреЗрд╢ рдмрд┐рд▓реНрдХреБрд▓ рдореВрд░реНрдЦреЛрдВ рдХреЗ рд▓рд┐рдП рдкреЙрдк рдЕрдк рдХрд░рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдкреЗрдЬ рдкрд░ рд╕рдм рдХреБрдЫ рд▓рд┐рдЦрд╛ рдЬрд╛рдПрдЧрд╛)

14:05 рдлрд╝рд┐рдХреНрд╕рд┐рдо рд▓реЗрдЖрдЙрдЯред
рд╕рд┐рджреНрдзрд╛рдВрдд рдХреА рдПрдХ рдмрд┐рдЯред рдЖрдк рд▓реЛрдб рдХрд┐рдП рдЧрдП рдкреЗрдЬ рдкрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рдПрдбреНрд░реЗрд╕ рдмрд╛рд░ рдореЗрдВ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬреИрд╕реЗ рдХреБрдЫ рдЯрд╛рдЗрдк рдХрд░рддреЗ рд╣реИрдВ: рдЕрд▓рд░реНрдЯ (document.body.innerHTML), рддреЛ рд╣рдо рдкреГрд╖реНрда рдХрд╛ рд╢рд░реАрд░ (рдХреЙрдкреА-рдкреЗрд╕реНрдЯ - рдКрдкрд░ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ - "c" рдЕрдХреНрд╖рд░ рджреЗрдЦреЗрдВрдЧреЗред рд╡рд╣ рд░реВрд╕реА рд╣реИ рдЬреЛ рдЙрд╕ рдкрд╛рд░реНрд╕рд░ рдХреЛ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИ)ред
рдареАрдХ рд╣реИ, рддреЛ - HOUSE рдкреЗрдбрд╝, рдЖрджрд┐, рдЬреЛ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдХрдо рд╕реЗ рдХрдо рдкреГрд╖реНрда рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдлрд┐рд░ рд╕реЗ рдХрд░реЗрдВ рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╣рдо рдЕрднреА рддрдХ (рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ) рдирд╣реАрдВ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдкрдардиреАрдпрддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХреЗ рд▓рд┐рдП рд╕рд╛рдЗрдбрдмрд╛рд░ рдХреЛ рдЫрд┐рдкрд╛ рд░рд╣реЗ рд╣реИрдВред рдФрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕реНрд╡рдпрдВ рдкреВрд░реЗ рдкреГрд╖реНрда рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдмрдврд╝рд╛рдПрдЧрд╛ред рдЗрд╕рд▓рд┐рдП, рд╣рдо рдкреЗрдЬ рд▓реЛрдб рдХреЗ рдЕрдВрдд рдореЗрдВ рдПрдХ рд╣реИрдВрдбрд▓рд░ рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ:

public void onPageFinished (WebView view, String url) {
view.loadUrl( "javascript:(function() { " +
"hide('sidebar');" +
"function hide(id){if (document.getElementById(id)){document.getElementById(id).style['display'] = 'none';}}" +
"})()" );
}


* This source code was highlighted with Source Code Highlighter .


/ * рдХрд╛рдо рд╕реЗ рд╡рд┐рдЪрд▓рд┐рдд * /
Dachshund, рд╕рд╛рдЗрдбрдмрд╛рд░ рдЫреБрдкрд╛ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЫрд▓рд╛рдВрдЧ рдХреЗ рд╕рд╛рдеред рдЫрд╡рд┐ рдЕрдкрд▓реЛрдб рдареАрдХ рдХрд░реЗрдВ:

14:34 рдбрд╛рдЙрдирд▓реЛрдб рдХреА рдЧрддрд┐ рдмрдврд╝рд╛рдПрдБ
рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреЗрдЬ рдХреЗ рд╢реБрд░реВ рдореЗрдВ рдЪрд┐рддреНрд░реЛрдВ рдХреЛ рдмрдВрдж рдХрд░реЗрдВ:
view.getSettings ()ред setLoadsImagesAutomatically (рдЭреВрдард╛);
рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рд╣реИрдХ рдХреЗ рдмрд╛рдж, рдЦрддреНрдо рдкрд░ рдмрд╛рд░реА:
view.getSettings ()ред setLoadsImagesAutomatically (рд╕рдЪ);

Dachshund, рд▓реЛрдбрд┐рдВрдЧ рд╕рд╛рдордЧреНрд░реА рдХрд╛рдлреА рддреЗрдЬ рд╣реЛ рдЧрдИ рд╣реИ (рдореЗрд░реЗ рдЖрдзреЗ-рдореГрдд Iota рдкрд░, рдПрдореБрд▓реЗрдЯрд░ рдореЗрдВ, рдХрдо рд╕реЗ рдХрдо)

14:37 рд▓рдВрдЪ

15:23 рд╣рдо рдмрд╛рддрдЪреАрдд рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реИрдВ
рдЬрдм рдореИрдВ рджреЛрдкрд╣рд░ рдХреЗ рднреЛрдЬрди рдХреЗ рд▓рд┐рдП рдЧрдпрд╛, рдореИрдВрдиреЗ рдореБрдХреНрдд рд╡рд╛рдИ-рдлрд╛рдИ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рджреЗрдЦрд╛, рдФрд░ рдЙрд╕реА рд╕рдордп рдореИрдВрдиреЗ рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ред рдЕрдлрд╕реЛрд╕, рдореИрдВрдиреЗ рдЦрд╛рд▓реА рджрд╛рд╣рд┐рдиреЗ рдХреЛрдиреЗ рдореЗрдВ рдПрдХ рдЦреЛрдЬ рдкрдЯреНрдЯреА рдХреЛ рдмреЗрддреБрдХреЗ рдврдВрдЧ рд╕реЗ рд▓рдЯрдХрд╛ рджреЗрдЦрд╛ред рдЪрд▓реЛ рдЗрд╕рдХреЗ рд╕рд╛рде рдХреБрдЫ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВред
рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП, рдореВрд░реНрдЦрддрд╛рдкреВрд░реНрдг рдЫрд┐рдкрд╛рдирд╛ред

* рд╕рдВрдЧреАрдд: рдЙрдкрдорд╛рддреНрдХрд╛рдирд╛ - рдХреНрд░рд┐рдкреНрдЯ (рдпрд╣ рдХреБрдЫ рдХреЗ рд╕рд╛рде рдХреБрдЫ рд╣реИ)

"hideByClass('panel-tools');" +
"function hideByClass(c){var e=document.getElementsByClassName(c);for(var i=0;i<e.length;i++){e[i].style['display'] = 'none';}}" +


* This source code was highlighted with Source Code Highlighter .


рд╣рдореНрдо, рддреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред Dachshund, "рдЗрд╕реЗ рдмреНрд▓реЙрдЧ рдХреА рд╕реВрдЪреА рдореЗрдВ рд╕рдВрд▓рдЧреНрди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред"

"var parent = document.getElementsByClassName('page-navigation')[0];" +
"var panel = document.getElementsByClassName('panel-tools')[0];" +
"var div = document.createElement('div');" +
"div.innerHTML = panel.innerHTML;" +
"parent.appendChild(div);" +


* This source code was highlighted with Source Code Highlighter .


рдСрдкреНрд╕, рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рджреЛ рдкреИрдирд▓ рд╣реИрдВ)
"panel.innerHTML = '';" +
"div.style['margin-left'] = '30px;'" +


* This source code was highlighted with Source Code Highlighter .


15:57 рдУрд╣, рдПрдХ рдЙрджреНрдзрд░рдг рдЪрд┐рд╣реНрди рдирд╣реАрдВ рд╣реИ рдФрд░ рдкреВрд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛рд░реНрдб рдХреЗ рдШрд░ рдХреА рддрд░рд╣ рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рд╣реЛ рд░рд╣реА рд╣реИред
рдпрд╣ рдЗрд╕ рддрд░рд╣ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП: div.style ['рдорд╛рд░реНрдЬрд┐рди-рд▓реЗрдлреНрдЯ'] = '30px';
рдЗрд╕рд▓рд┐рдП рдореИрдВ рдореЗрдиреВ рдореЗрдВ рд╡рд┐рдЬреНрдЮрд╛рдкрди рдЗрдХрд╛рдЗрдпреЛрдВ рдХреЛ рдХрд╛рдЯрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдирд╣реАрдВ, рдореИрдВ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдкрд╛рдкреА рд▓реЗрдЖрдЙрдЯ рдХреЗ рд╕рд╛рде рдЦрд┐рд▓рд╡рд╛рдбрд╝ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ (рдореБрдЭреЗ рдЗрд╕рд╕реЗ рдирдлрд░рдд рд╣реИ)ред

16:04 рдЪреВрдВрдХрд┐ рдЗрди рддрддреНрд╡реЛрдВ рдХрд╛ рдирд╛рдо рдирд╣реАрдВ рд╣реИ, рдореИрдВрдиреЗ рдпрд╣ рдХреЛрд╢рд┐рд╢ рдХреА:
"var urls=document.getElementsByTagName('a');for(var i=0;i<urls.length;i++){if (urls[i].target='_top'){urls[i].appendChild(document.createTextNode(''));}}" +

* This source code was highlighted with Source Code Highlighter .

рдлреНрдпреВрдЬ рдирд╣реАрдВ рд╣реБрдЖ

16:16 рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рд╣рд┐рдЯ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ:
"var imgs=document.getElementsByTagName('IMG');for(var i=0;i<imgs.length;i++){if (imgs[i].height=60) {imgs[i].src='';imgs[i].width=0;} }" +

* This source code was highlighted with Source Code Highlighter .

рддрд╕реНрд╡реАрд░реЗрдВ рдЧрд╛рдпрдм рд╣реЛ рдЧрдИрдВ, рд▓реЗрдХрд┐рди рдЦрд╛рд▓реА рдЬрдЧрд╣ рдЕрднреА рднреА рдЪрд┐рдкрдХ рдЧрдИ рд╣реИ (рдареАрдХ рд╣реИ, рдЗрд╕реЗ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд░рд╣рдиреЗ рджреЗрдВ рдЬреЛ рдЗрд╕реЗ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЙрдиреНрд╣реЗрдВ рдЕрднреА рдХреЗ рд▓рд┐рдП рд╡рд┐рдЬреНрдЮрд╛рдкрдирджрд╛рддрд╛рдУрдВ рдХреА рдЦреБрд╢реА рдХреЗ рд▓рд┐рдП рдЬреАрдиреЗ рджреЗрдВред
рдзреБрдЖрдВ рдЯреВрдЯрдирд╛ред

16:45 рдЦреЛрдЬреЗрдВ, рд╢рд╛рдпрдж, рд╡рд╛рдкрд╕ рдЬрд╛рдиреЗ рджреЗрдВ, рдЪреМрдбрд╝рд╛рдИ рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕рдВрдХрд░рд╛:
"var panel = document.getElementById('search');" +
"panel.style['width'] = '55px';" +


* This source code was highlighted with Source Code Highlighter .


рдареАрдХ рд╣реИ, рдЕрдВрдд рдореЗрдВ, рдЪрд▓реЛ Android рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рдЙрддрд░реЛред
16:47 рд╣рдо рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдмрдЯрди рдХреЛ рдУрд╡рд░рд▓реИрдк рдХрд░рддреЗ рд╣реИрдВред

  1. @Override
  2. рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдмреВрд▓рд┐рдпрди onKeyDown ( int рдХреАрдХреЛрдб, KeyEvent рдШрдЯрдирд╛ ) {
  3. рдЕрдЧрд░ (рдХреА -рдХреЛрдб == KeyEvent.KEYCODE_BACK) && wv.canGoBack ()) {
  4. wv.goBack ();
  5. рд╕рдЪ рд▓реМрдЯрдирд╛ ;
  6. }
  7. super.onKeyDown (рдХреАрдХреЛрдб, рдИрд╡реЗрдВрдЯ );
  8. }
* рдЗрд╕ рд╕реЛрд░реНрд╕ рдХреЛрдб рдХреЛ рд╕реЛрд░реНрд╕ рдХреЛрдб рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд░ рдХреЗ рд╕рд╛рде рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред


16:57 рдПрдХ рдореЗрдиреВ рдмрдирд╛рдПрдБ

  1. @Override
  2. рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдмреВрд▓рд┐рдпрди onCreateOptionsMenu (рдореЗрдиреВ рдореЗрдиреВ)
  3. {
  4. super.onCreateOptionsMenu (рдореЗрдиреВ);
  5. рдпрд╣ .MMenu = рдореЗрдиреВ;
  6. MenuItem рдЖрдЗрдЯрдо = menu.add (0, 1, 0, "рдореБрдЦреНрдп рдкреГрд╖реНрда" );
  7. item.setIcon (R.drawable.home);
  8. MenuItem item2 = menu.add (0, 2, 0, "BACK" );
  9. item2.setIcon (R.drawable.arrowleft);
  10. MenuItem item3 = menu.add (0, 3, 0, "F5" );
  11. item3.setIcon (R.drawable.s);
  12. MenuItem item4 = menu.add (0, 4, 0, "CLEAR CACHE" );
  13. item4.setIcon (R.drawable.trash);
  14. MenuItem item5 = menu.add (0, 5, 0, "VOID" );
  15. item5.setIcon (R.drawable.vote);
  16. рд╕рдЪ рд▓реМрдЯрдирд╛ ;
  17. }
  18. @Override
  19. рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдмреВрд▓рд┐рдпрди onOptionsItemSelected (MenuItem рдЖрдЗрдЯрдо) {
  20. рд╕реНрд╡рд┐рдЪ (item.getItemId ())
  21. {
  22. рдХреЗрд╕ 1:
  23. wv.loadUrl ( "http://habrahabr.ru" );
  24. рддреЛрдбрд╝рдирд╛ ;
  25. рдорд╛рдорд▓рд╛ 2:
  26. рдЕрдЧрд░ (wv.canGoBack ()) {
  27. wv.goBack ();
  28. }
  29. рддреЛрдбрд╝рдирд╛ ;
  30. рдХреЗрд╕ 3:
  31. wv.loadUrl (LASTURL);
  32. рддреЛрдбрд╝рдирд╛ ;
  33. рдорд╛рдорд▓рд╛ 4:
  34. wv.clearCache ( рд╕рдЪ );
  35. рддреЛрдбрд╝рдирд╛ ;
  36. рдХреЗрд╕ 5:
  37. Intent marketIntent2 = рдирдпрд╛ рдЗрд░рд╛рджрд╛ (Intent.ACTION_VIEW, Uri.parse (
  38. "http://market.android.com/details?id=" + getPackageName ()));
  39. startActivity (marketIntent2);
  40. рддреЛрдбрд╝рдирд╛ ;
  41. }
  42. рд╕рдЪ рд▓реМрдЯрдирд╛ ;
  43. }
* рдЗрд╕ рд╕реЛрд░реНрд╕ рдХреЛрдб рдХреЛ рд╕реЛрд░реНрд╕ рдХреЛрдб рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд░ рдХреЗ рд╕рд╛рде рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред


рдпрд╣рд╛рдБ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рднреА рдХреБрдЫ рднреА рд╕рдордЭрд╛рдиреЗ рдХреЗ рд▓рд┐рдП ...
рд╡реЗрдмрд╡реНрдпреВ рдПрдХ рд╕реНрдерд╛рдиреАрдп рдкреГрдердХ рдХреИрд╢ рдФрд░ рдХреНрд▓рд┐рдпрд░ рдХреИрд╢ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ - рдХреИрд╢реНрдб рдЪрд┐рддреНрд░реЛрдВ рдХреЛ рд╣рдЯрд╛рддрд╛ рд╣реИ, рдЖрджрд┐ред

рд╣рдо рдЗрдВрдЯреЗрдВрдЯ + рд╕реНрдЯрд╛рд░реНрдЯ рдПрдХреНрдЯрд┐рд╡реЗрд╢рди рдХреА рдорджрдж рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдмрд╛рдЬрд╛рд░ рдореЗрдВ рднреЗрдЬрддреЗ рд╣реИрдВ, рдмрд╛рд╣рд░реА рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХреЗ рд▓рд┐рдП рдпрд╣ рдорд╛рдирдХ рддрдВрддреНрд░ рд╣реИред

17:01 рдХрд░, рд╢рд╛рдпрдж рдпрд╣ рдЪрд┐рддреНрд░реЛрдВ рдХреЗ рд╕рд╛рде / рдмрд┐рдирд╛ рдЪрд┐рддреНрд░реЛрдВ рдХреЗ рдПрдХ рдореЛрдб рдмрдирд╛рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИ
Fixim рдореЗрдиреВ:
menu.add (0, 6, 0, "IMG ON");
menu.add (0, 7, 0, "IMG OFF");

17:05 рдореНрдпреВрдЯреАрдо рдлрдВрдХреНрд╢рди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╕реЗрд╡ рдХрд░реЗрдВ
  1. рдирд┐рдЬреА рд╢реВрдиреНрдп рд╕реЗрд╡рд┐рдВрдЧреНрд╕ (рдмреБрд▓рд┐рдпрди рд╡реИрд▓)
  2. {
  3. SharedPreferences рд╕реЗрдЯрд┐рдВрдЧ = getSaringPreferences (PREFS_NAME, 0);
  4. SharedPreferences.Editor рд╕рдВрдкрд╛рджрдХ = settings.edit ();
  5. Editor.putBoolean ( "IMGMODE" , val);
  6. editor.commit ();
  7. }
* рдЗрд╕ рд╕реЛрд░реНрд╕ рдХреЛрдб рдХреЛ рд╕реЛрд░реНрд╕ рдХреЛрдб рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд░ рдХреЗ рд╕рд╛рде рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред


рд╣рдо рдЗрд╕реЗ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджреЗрдВрдЧреЗ (рдЪрд┐рддреНрд░ рдХреЛ рд▓реЛрдб рдХрд░реЗрдВ рдпрд╛ рдирд╣реАрдВ), рдФрд░ рдЗрд╕реЗ рдЪрд░ рдореЗрдВ рджрд┐рдП рдЧрдП рдорд╛рди рдХреЛ рд░рдЯрдирд╛ рджреЗрдВред
(рдирд┐рд░рдВрддрд░ PREFS_NAME рдКрдкрд░ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ - рдпрд╣ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдерд╛, рд╡рд┐рдиреНрдпрд╛рд╕ рдХрд╛ рдирд╛рдо)

рдЕрдм рдмрд╕ рдЗрд╕реЗ рдореЗрдиреВ рд╣реИрдВрдбрд▓рд░ рдореЗрдВ рдХреЙрд▓ рдХрд░реЗрдВ:
  1. рдХреЗрд╕ 6:
  2. saveSettings ( рд╕рдЪ );
  3. рддреЛрдбрд╝рдирд╛ ;
  4. рдорд╛рдорд▓рд╛ 7:
  5. saveSettings ( рдЭреВрдареА );
  6. рддреЛрдбрд╝рдирд╛ ;
* рдЗрд╕ рд╕реЛрд░реНрд╕ рдХреЛрдб рдХреЛ рд╕реЛрд░реНрд╕ рдХреЛрдб рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд░ рдХреЗ рд╕рд╛рде рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред


17:18 рдФрд░ рд╣рдо рдЕрдкрдиреЗ рдХреЙрдиреНрдлрд┐рдЧ рд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рддреЗ рд╕рдордп рдХрдВрдЯреАрдиреНрдпреВ рдкрдврд╝рддреЗ рд╣реИрдВ
  1. SharedPreferences рд╕реЗрдЯрд┐рдВрдЧ = getSaringPreferences (PREFS_NAME, 0);
  2. imgOn = settings.getBoolean ( "IMGMODE" , false );
  3. webSettings.setLoadsImagesAutomatically (imgOn);
* рдЗрд╕ рд╕реЛрд░реНрд╕ рдХреЛрдб рдХреЛ рд╕реЛрд░реНрд╕ рдХреЛрдб рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд░ рдХреЗ рд╕рд╛рде рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред


17:19 рдлрд┐рд░ рд╕реЗ рдкрд░реАрдХреНрд╖рдг

17:25 рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕реНрдЯреЙрдХ рдирд╣реАрдВ рд╣реИрдВред рд╣рдо рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдирд┐рд░реНрдпрд╛рдд рдХрд░рддреЗ рд╣реИрдВред
рдЧреНрд░рд╣рдг рдореЗрдВ, рдпрд╣ рдирд┐рд░реНрдпрд╛рдд рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рд╕рд╣реА рдмрдЯрди рд╣реИ рдФрд░ рдПрдХ рд╡рд┐рдЬрд╝рд╛рд░реНрдб рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдПрдХ рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдФрд░ рдкреИрдХреЗрдЬрд┐рдВрдЧ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмрдирд╛рдиреЗ / рдЪрдпрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЕрдЧрд▓рд╛, рдмрд╛рдЬрд╛рд░ рдХреЗ рд▓рд┐рдП stomp

17:38 рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░реЗрдВред
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рдХрд╛рдо рдирд╣реАрдВ рд╣реИред рдХрд╣реАрдВ рдЖрдкрдХреЛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЖрдХрд╛рд░ рдХреЗ рдкреНрд░реЛрдореЛрдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣рд╛рдВ рдбрд┐рдЬрд╛рдЗрдирд░реЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИред

рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ред
- рд░реВрд╕реА рдХреЛ рдореБрдЦреНрдп рдПрдкреНрд▓рд┐рдХреЗрд╢рди рднрд╛рд╖рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рд░реВрд╕реА рдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛, рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╣реА рдЕрдВрдЧреНрд░реЗрдЬреА рдХреЛ рд╣рдЯрд╛рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ред
- рд╡рд░реНрдгрдирд╛рддреНрдордХ рдФрд░ рдкреНрд░рдЪрд╛рд░ рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ, рдЙрди рдХреАрд╡рд░реНрдб рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдирд╛ рд╡рд╛рдВрдЫрдиреАрдп рд╣реИ рдЬрд┐рдирдХреЗ рджреНрд╡рд╛рд░рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЦреЛрдЬ рд╕рдХрддрд╛ рд╣реИред
- рдпрджрд┐ рдЖрдк рдореВрд▓реНрдп рдореБрдХреНрдд рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ - рддреЛ рдЗрд╕реЗ рднреБрдЧрддрд╛рди рдХрд░реЗрдВ - рдпрд╣ рдЕрд╕рдВрднрд╡ рд╣реИ
- рдХреЙрдкреА рдкреНрд░реЛрдЯреЗрдХреНрд╢рди рдмреЙрдХреНрд╕ рдХреА рдЬрд╛рдВрдЪ рди рдХрд░реЗрдВ, рдХреБрдЫ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЗрдВрд╕реНрдЯреЙрд▓ рдирд╣реАрдВ рд╣реЛрдЧрд╛
- рд╕рднреА рджреЗрд╢реЛрдВ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ, рднрд▓реЗ рд╣реА рдЖрд╡реЗрджрди рдХреЗрд╡рд▓ рд░реВрд╕реА рдмреЛрд▓рдиреЗ рд╡рд╛рд▓реЛрдВ рдХреЗ рд▓рд┐рдП рд╣реЛ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдПред

17:50 рдкреНрд░рдХрд╛рд╢рд┐рдд

рдмрд╛рдЬрд╛рд░ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ
рд╕реНрд░реЛрдд рдХреЛрдб рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ

рд╣рдореНрдо, рдЖрдЗрдХрди рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ (рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдореБрдЭ рдкрд░ gnawsред рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ 48 * 48 рдЪрд┐рддреНрд░рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдореИрдВ рдмрд╣реБрдд рдЖрднрд╛рд░реА рд░рд╣реВрдВрдЧрд╛ред

рдкреВрд░реА рддрд░рд╣ рд╕реЗ, рдЕрдВрддрд┐рдо рд╕реНрд░реЛрдд:
  1. рдкреИрдХреЗрдЬ рд░реБред
  2. рдЖрдпрд╛рдд android.app.Activity;
  3. рдЖрдпрд╛рдд android.content.ntent;
  4. рдЖрдпрд╛рдд android.content.SaringPreferences;
  5. рдЖрдпрд╛рдд android.graphics.Bitmap;
  6. рдЖрдпрд╛рдд android.net.Uri;
  7. рдЖрдпрд╛рдд android.os.Bundle;
  8. рдЖрдпрд╛рдд android.view.KeyEvent;
  9. рдЖрдпрд╛рдд android.view.Menu;
  10. рдЖрдпрд╛рдд android.view.MenuItem;
  11. import android.view.Window;
  12. рдЖрдпрд╛рдд android.webkit.WebChromeClient;
  13. рдЖрдпрд╛рдд android.webkit.Webettings;
  14. рдЖрдпрд╛рдд android.webkit.WebView;
  15. рдЖрдпрд╛рдд android.webkit.WebViewClient;
  16. рдЖрдпрд╛рдд android.widget.Toast;
  17. рдкрдмреНрд▓рд┐рдХ рдХреНрд▓рд╛рд╕ рд╣рдмреНрд░ рдлреИрдХреНрдЯреНрд░реА рдлреИрдХреНрдЯреНрд░реА {
  18. рдирд┐рдЬреА рд╡реЗрдмрд╡реНрдпреВ wv;
  19. рдирд┐рдЬреА рд╕реНрдЯреНрд░рд┐рдВрдЧ LASTURL = "" ;
  20. рдореЗрдиреВ myMenu = null ;
  21. рдирд┐рдЬреА рд╕реНрдерд┐рд░ рдЕрдВрддрд┐рдо рд╕реНрдЯреНрд░рд┐рдВрдЧ PREFS_NAME = "MyPrefs" ;
  22. рдирд┐рдЬреА рдмреВрд▓рд┐рдпрди imgOn;
  23. / ** рдЬрдм рдкрд╣рд▓реА рдмрд╛рд░ рдЧрддрд┐рд╡рд┐рдзрд┐ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИ рддреЛ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред * /
  24. @Override
  25. рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╢реВрдиреНрдп onCreate (рдмрдВрдбрд▓ рд╕рд╣реЗрдЬрд╛ рдЧрдпрд╛
  26. super.onCreate (saveInstanceState);
  27. рдЗрд╕реЗ .getWindow ()ред requestFeature (Window.FEATURE_PROGRESS);
  28. setContentView (R.layout.main);
  29. wv = (WebView) findViewById (R.id.wv);
  30. WebSettings webSettings = wv.getSettings ();
  31. webSettings.setSavePassword ( true );
  32. webSettings.setSaveFormData ( рд╕рдЪ );
  33. webSettings.setJavaScriptEnabled ( рд╕рдЪ );
  34. SharedPreferences рд╕реЗрдЯрд┐рдВрдЧ = getSaringPreferences (PREFS_NAME, 0);
  35. imgOn = settings.getBoolean ( "IMGMODE" , false );
  36. webSettings.setLoadsImagesAutomatically (imgOn);
  37. рдЕрдВрддрд┐рдо рдЧрддрд┐рд╡рд┐рдзрд┐ рдЧрддрд┐рд╡рд┐рдзрд┐ = рдпрд╣ ;
  38. wv.setWebChromeClient ( рдирдпрд╛ WebChromeClient () {
  39. рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╢реВрдиреНрдп onProgressChanged (рд╡реЗрдм тАЛтАЛрджреГрд╢реНрдп, int рдкреНрд░рдЧрддрд┐)
  40. {
  41. activity.setTitle ( "" + LASTURL);
  42. activity.setProgress (рдкреНрд░рдЧрддрд┐ * 100);
  43. рдЕрдЧрд░ (рдкреНрд░рдЧрддрд┐ == 100)
  44. activity.setTitle ( "" + LASTURL);
  45. }
  46. });
  47. wv.setWebViewClient ( рдирдпрд╛ WebViewClient () {
  48. рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╢реВрдиреНрдп onReceivedError (WebView рджреЗрдЦреЗрдВ, int errorCode, рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╡рд┐рд╡рд░рдг, рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╡рд┐рдлрд▓ рд╣реЛ рд░рд╣рд╛ рд╣реИред NET) {
  49. Toast.makeText (getApplicationContext (), "Error:" + description + "" + failingUrl, Toast.LENGTH_LONG) .show ();
  50. }
  51. @Override
  52. рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдмреВрд▓рд┐рдпрди shouldOverrideUrlLoading (рд╡реЗрдм тАЛтАЛрджреГрд╢реНрдп, рд╕реНрдЯреНрд░рд┐рдВрдЧ url)
  53. {
  54. рдЕрдЧрд░ (url.indexOf ( "habrahabr" ) <= 0) {
  55. // рд▓рд┐рдВрдХ рдореЗрд░реА рд╕рд╛рдЗрдЯ рдХреЗ рдПрдХ рдкреЗрдЬ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП URL рдХреЛ рд╣реИрдВрдбрд▓ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдЕрдиреНрдп рдЧрддрд┐рд╡рд┐рдзрд┐ рд▓реЙрдиреНрдЪ рдХрд░реЗрдВ
  56. рдЖрд╢рдп рдЕрднрд┐рдкреНрд░рд╛рдп = рдирдпрд╛ рдЖрд╢рдп (Intent.ACTION_VIEW, Uri.parse (url));
  57. startActivity (рдЖрд╢рдп);
  58. рд╕рдЪ рд▓реМрдЯрдирд╛ ;
  59. }
  60. рдЭреВрдареЗ рд▓реМрдЯрдирд╛ ;
  61. }
  62. рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╢реВрдиреНрдп onPageStarted (рд╡реЗрдм тАЛтАЛрджреГрд╢реНрдп, рд╕реНрдЯреНрд░рд┐рдВрдЧ url, рдмрд┐рдЯрдореИрдк рдлрд╝реЗрд╡рд┐рдХреЙрди) {
  63. LASTURL = url;
  64. view.getSettings ()ред setLoadsImagesAutomatically ( рдЭреВрдард╛ );
  65. }
  66. рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╢реВрдиреНрдп onPageFinished (рд╡реЗрдм тАЛтАЛрджреГрд╢реНрдп, рд╕реНрдЯреНрд░рд┐рдВрдЧ url) {
  67. view.loadUrl ( "рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ: (рдлрд╝рдВрдХреНрд╢рди () {" +
  68. "рдЫрд┐рдкрд╛рдирд╛ ('рд╕рд╛рдЗрдбрдмрд╛рд░');" +
  69. // "var рдорд╛рддрд╛-рдкрд┐рддрд╛ = document.getElementsByClassName ('рдкреЗрдЬ-рдиреЗрд╡рд┐рдЧреЗрд╢рди') [0];" +
  70. // "var рдкреИрдирд▓ = document.getElementsByClassName ('рдкреИрдирд▓-рдЯреВрд▓реНрд╕') [0];" +
  71. // "var div = document.createElement ('div');" +
  72. //"div.innerHTML = panel.innerHTML; "+
  73. //"parent.appendChild(div);"+
  74. //"panel.innerHTML = ''; "+
  75. //"div.style рдИ'рдорд╛рд░рд┐рди-рдПрд▓рдлрд╝реНрдЯ '] =' 31px '; "+
  76. "var рдкреИрдирд▓ = document.getElementById ('рдЦреЛрдЬ');" +
  77. "рдкреИрдирд▓.рд╕реНрдЯрд╛рдЗрд▓ ['рдЪреМрдбрд╝рд╛рдИ'] = '55px';" +
  78. // "var imgs = document.getElementsByTagName ('IMG'); рдХреЗ рд▓рд┐рдП (var i = 0; i <imgs.length; i ++) {if (imgs [i] .height = 60) / imgs [i] .src = '', imgs [i] .width = 0;}} "+
  79. // "var urls = document.getElementsByTagName ('li'); рдХреЗ рд▓рд┐рдП (var i = 0; рдореИрдВ <urls.length; i ++) {if (urls [i] .style = 'рдорд╛рд░реНрдЬрд┐рди: -14px 0pt 0pt;'))ред {urls [i] .рд╕реНрдЯрд╛рдЗрд▓ ['рдбрд┐рд╕реНрдкреНрд▓реЗ'] = 'рдХреЛрдИ рдирд╣реАрдВ';}} "+
  80. // "HideByClass ('рдкреИрдирд▓-рдЯреВрд▓реНрд╕');" +
  81. "function Hide (id) {if (document.getElementById (id)) {document.getElementById (id) .style ['display'] = 'none';}}" +
  82. // "рдлрд╝рдВрдХреНрд╢рди HideByClass (c) {var e = document.getElementsByClassName (c); рдХреЗ рд▓рд┐рдП (var i = 0; рдореИрдВ <e.length; i ++) {e [ред iред .style [рдбрд┐рд╕реНрдкреНрд▓реЗ]] = 'none' ;}} тАЭ+
  83. ")) ()" );
  84. рдЕрдЧрд░ (imgOn) view.getSettings ()ред setLoadsImagesAutomatically ( рд╕рдЪ );
  85. }
  86. });
  87. wv.loadUrl ( "http://habrahabr.ru" );
  88. }
  89. @Override
  90. рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдмреВрд▓рд┐рдпрди onKeyDown ( int рдХреАрдХреЛрдб, KeyEvent рдШрдЯрдирд╛ ) {
  91. рдЕрдЧрд░ (рдХреА -рдХреЛрдб == KeyEvent.KEYCODE_BACK) && wv.canGoBack ()) {
  92. wv.goBack ();
  93. рд╕рдЪ рд▓реМрдЯрдирд╛ ;
  94. }
  95. super.onKeyDown (рдХреАрдХреЛрдб, рдИрд╡реЗрдВрдЯ );
  96. }
  97. @Override
  98. рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдмреВрд▓рд┐рдпрди onCreateOptionsMenu (рдореЗрдиреВ рдореЗрдиреВ)
  99. {
  100. super.onCreateOptionsMenu (рдореЗрдиреВ);
  101. рдпрд╣ .MMenu = рдореЗрдиреВ;
  102. MenuItem рдЖрдЗрдЯрдо = menu.add (0, 1, 0, "рдореБрдЦреНрдп рдкреГрд╖реНрда" );
  103. item.setIcon (R.drawable.home);
  104. MenuItem item2 = menu.add (0, 2, 0, "BACK" );
  105. item2.setIcon (R.drawable.arrowleft);
  106. MenuItem item3 = menu.add (0, 3, 0, "F5" );
  107. item3.setIcon (R.drawable.s);
  108. MenuItem item4 = menu.add (0, 4, 0, "CLEAR CACHE" );
  109. item4.setIcon (R.drawable.trash);
  110. MenuItem item5 = menu.add (0, 5, 0, "VOID" );
  111. item5.setIcon (R.drawable.vote);
  112. menu.add (0, 6, 0, "IMG ON" );
  113. menu.add (0, 7, 0, "IMG OFF" );
  114. рд╕рдЪ рд▓реМрдЯрдирд╛ ;
  115. }
  116. @Override
  117. рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдмреВрд▓рд┐рдпрди onOptionsItemSelected (MenuItem рдЖрдЗрдЯрдо) {
  118. рд╕реНрд╡рд┐рдЪ (item.getItemId ())
  119. {
  120. рдХреЗрд╕ 1:
  121. wv.loadUrl ( "http://habrahabr.ru" );
  122. рддреЛрдбрд╝рдирд╛ ;
  123. рдорд╛рдорд▓рд╛ 2:
  124. рдЕрдЧрд░ (wv.canGoBack ()) {
  125. wv.goBack ();
  126. }
  127. рддреЛрдбрд╝рдирд╛ ;
  128. рдХреЗрд╕ 3:
  129. wv.loadUrl (LASTURL);
  130. рддреЛрдбрд╝рдирд╛ ;
  131. рдорд╛рдорд▓рд╛ 4:
  132. wv.clearCache ( рд╕рдЪ );
  133. рддреЛрдбрд╝рдирд╛ ;
  134. рдХреЗрд╕ 5:
  135. Intent marketIntent2 = рдирдпрд╛ рдЗрд░рд╛рджрд╛ (Intent.ACTION_VIEW, Uri.parse (
  136. "http://market.android.com/details?id=" + getPackageName ()));
  137. startActivity (marketIntent2);
  138. рддреЛрдбрд╝рдирд╛ ;
  139. рдХреЗрд╕ 6:
  140. saveSettings ( рд╕рдЪ );
  141. рддреЛрдбрд╝рдирд╛ ;
  142. рдорд╛рдорд▓рд╛ 7:
  143. saveSettings ( рдЭреВрдареА );
  144. рддреЛрдбрд╝рдирд╛ ;
  145. }
  146. рд╕рдЪ рд▓реМрдЯрдирд╛ ;
  147. }
  148. рдирд┐рдЬреА рд╢реВрдиреНрдп рд╕реЗрд╡рд┐рдВрдЧреНрд╕ (рдмреБрд▓рд┐рдпрди рд╡реИрд▓)
  149. {
  150. SharedPreferences рд╕реЗрдЯрд┐рдВрдЧ = getSaringPreferences (PREFS_NAME, 0);
  151. SharedPreferences.Editor рд╕рдВрдкрд╛рджрдХ = settings.edit ();
  152. Editor.putBoolean ( "IMGMODE" , val);
  153. editor.commit ();
  154. }
  155. }
* рдЗрд╕ рд╕реЛрд░реНрд╕ рдХреЛрдб рдХреЛ рд╕реЛрд░реНрд╕ рдХреЛрдб рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд░ рдХреЗ рд╕рд╛рде рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред


UPD : рд▓реЗрдЖрдЙрдЯ рдХреЛ рдмрд╣реБрдд рдмрджрд▓ рджрд┐рдпрд╛ред
рдЙрдиреНрд╣реЛрдВрдиреЗ almalexa.habrahabr.ru рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдХрд╕рд┐рдд рд╢реИрд▓реА рдХреЛ рдПрдХ рдЖрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдпрд╛ рдФрд░ рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ред
рдкрд░рд┐рдгрд╛рдореА рд╢реИрд▓реА: userstyles.org/styles/46932/habr
рдЗрд╕ рдкрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд┐рдХрд╛рд╕ рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рд╣реИред рдмрд╛рдЬрд╛рд░ рдореЗрдВ рдЧреНрд░рд╛рд╣рдХ - рдЕрджреНрдпрддрдиред
рдХреБрд▓: рд╕рдм рдХреБрдЫ рдПрдХ рджрд┐рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓реЗ рд▓рд┐рдпрд╛ред
рдЫрд╡рд┐

Source: https://habr.com/ru/post/In117885/


All Articles