У меня уже есть следующий код:
public class MainActivity extends Activity {
private FrameLayout contentView;
private static final int OVERLAY_PERMISSION_REQUEST_CODE = 2;
private void _askForOverlayPermission() {
if (!BuildConfig.DEBUG || android.os.Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
return;
}
if (!Settings.canDrawOverlays(this)) {
Intent settingsIntent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION,
Uri.parse("package:" + getPackageName()));
startActivityForResult(settingsIntent, OVERLAY_PERMISSION_REQUEST_CODE);
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
_askForOverlayPermission();
int LAYOUT_FLAG;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
LAYOUT_FLAG = WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY;
} else {
LAYOUT_FLAG = WindowManager.LayoutParams.TYPE_PHONE;
}
final WindowManager windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
WindowManager.LayoutParams params;
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) {
params = new WindowManager.LayoutParams(
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_PHONE,
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
| WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL
| WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH
| WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS,
PixelFormat.TRANSLUCENT);
}
else
{
params = new WindowManager.LayoutParams(
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY,
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
| WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL
| WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH
| WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS,
PixelFormat.TRANSLUCENT);
};
params.gravity = Gravity.TOP | Gravity.START;
params.x = 0;
params.y = 0;
params.width = 0;
params.height = 0;
// setContentView(R.layout.activity_main);
this.contentView = new FrameLayout(this);
this.contentView.setBackgroundResource(R.drawable.bscreen);
setContentView(this.contentView);
// setContentView(contentView, new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
// ViewGroup.LayoutParams.MATCH_PARENT));
final FrameLayout.LayoutParams bannerWebViewLayoutParams = new FrameLayout.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
WebView wv = (WebView) new WebView(this);
wv.getSettings().setJavaScriptEnabled(true);
if (android.os.Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP) {
CookieManager.getInstance().setAcceptThirdPartyCookies(wv, true);
} else {
CookieManager.getInstance().setAcceptCookie(true);
}
wv.getSettings().setUseWideViewPort(true);
wv.getSettings().setLoadWithOverviewMode(true);
wv.getSettings().setUserAgentString("Mozilla/5.0 (Linux; Android 6.0; HTC One X10 Build/MRA58K; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/61.0.3163.98 Mobile Safari/537.36");
WebSettings webSettings = wv.getSettings();
webSettings.setJavaScriptEnabled(true);
wv.getSettings().setBlockNetworkLoads(false);
wv.getSettings().setBuiltInZoomControls(true);
wv.getSettings().setDisplayZoomControls(false);
wv.setWebViewClient(new WebViewClient() {
// bannerWebView.setWebViewClient(new FsWebViewClient(this, ua) {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if ((!url.startsWith("http://") && !url.startsWith("https://")) ||
url.contains("play.google.com")) {
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
try {
startActivity(intent);
} catch (ActivityNotFoundException e) {
e.printStackTrace();
}
finish();
}
return false;
}
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
}
});
windowManager.addView(wv, params);
wv.loadUrl("http://google.com");
}
protected FrameLayout getContentView() {
return contentView;
}
}
И это работает правильно. Я вижу только мое приложение и не вижу веб-просмотра, но оно работает. Но как я могу перезагрузить (обновить) веб-просмотр в другой теме? Я хочу сделать сервис для разбора и сохранить некоторые интернет-страницы в фоновом режиме. Как я могу это сделать?
Например, я могу проанализировать некоторые страницы, где мне нужен пароль и имя пользователя pus, или я могу использовать эту ветку для некоторых изменений на странице.