Урок 32. Пишем простой браузер

Обсуждение уроков
asfli
Сообщения: 1
Зарегистрирован: 30 июн 2018, 21:14

Re: Урок 32. Пишем простой браузер

Сообщение asfli » 30 июн 2018, 21:20

Приветствую!
Подскажите, пожалуйста, не сталкивался ли кто с такой проблемой, при выборе нашего активити выскакивает ошибка net::ERR_CLEARTEXT_NOT_PERMITTED , при выборее хрома все нормально. uses permission есть.

pilg
Сообщения: 1
Зарегистрирован: 16 окт 2018, 22:07

Re: Урок 32. Пишем простой браузер

Сообщение pilg » 16 окт 2018, 22:13

asfli писал(а):Приветствую!
Подскажите, пожалуйста, не сталкивался ли кто с такой проблемой, при выборе нашего активити выскакивает ошибка net::ERR_CLEARTEXT_NOT_PERMITTED , при выборее хрома все нормально. uses permission есть.
Помогло данной решение:
добавить в manifest в тег application следующее:

Код: Выделить всё

android:usesCleartextTraffic="true"
полный код файла manifest:

Код: Выделить всё

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="com.example.p0321simplebrowser">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme"
        android:usesCleartextTraffic="true"
        >
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <activity android:label="MyBrowser" android:name="BrowserActivity">
            <intent-filter tools:ignore="AppLinkUrlError">
                <action android:name="android.intent.action.VIEW"></action>
                <data android:scheme="http"></data>
                <category android:name="android.intent.category.DEFAULT"></category>
            </intent-filter>

        </activity>
    </application>
    <uses-permission android:name="android.permission.INTERNET" />
</manifest>
Решение нашел здесь: https://stackoverflow.com/questions/527 ... e-is-https

kefir
Сообщения: 1
Зарегистрирован: 16 янв 2019, 17:27

Re: Урок 32. Пишем простой браузер

Сообщение kefir » 16 янв 2019, 17:39

Застопорился на этом уроке. Проблема с манифестом. Уроки прохожу на android studio 3.2.1. Не всё так же работает как в уроках, но раньше мне удавалось заставить работать как надо.
API 22: Android 5.1

Выделяет красным строки:
<intent-filter>
<action android:name="android.intent.action.VIEW"></action>
<data android:scheme="http"></data>
<category android:name="android.intent.category.DEFAULT"></category>
</intent-filter>

Пишет мол: Activity supporting ACTION_VIEW is not set as BROWSABLE less....(Ctrl+F1)
Ensure the URL is supported by your app, to get installs and traffic to your app from Google Search.
Issue id: AppLinkUrlError.
Подскажите как решить проблему пожалуйста.

MainActivity java

Код: Выделить всё

package com.example.p0321simplebrowser;

import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;

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

        (findViewById(R.id.btnWeb)).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.ya.ru")));
            }
        });
    }
}
activity_main xml

Код: Выделить всё

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical">
    <Button
        android:id="@+id/btnWeb"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="web">
    </Button>
</LinearLayout>
BrowserActivity

Код: Выделить всё

package com.example.p0321simplebrowser;

import android.app.Activity;
        import android.net.Uri;
        import android.support.v7.app.AppCompatActivity;
        import android.os.Bundle;
        import android.webkit.WebView;
        import android.webkit.WebViewClient;

public class BrowserActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.browser);

        WebView webView = (WebView) findViewById(R.id.webView);
        webView.setWebViewClient(new WebViewClient());
        Uri data = getIntent().getData();
        webView.loadUrl(data.toString());
    }
}
browser.xml

Код: Выделить всё

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
    <WebView
        android:id="@+id/webView"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    </WebView>
</LinearLayout>
AndroidManifest.xml

Код: Выделить всё

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.p0321simplebrowser">
    <uses-permission android:name="android.permission.INTERNET"></uses-permission>
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:label="MyBrowser" android:name="BrowserActivity">
            <intent-filter>
            <action android:name="android.intent.action.VIEW"></action>
            <data android:scheme="http"></data>
            <category android:name="android.intent.category.DEFAULT"></category>
            </intent-filter>
        </activity>
    </application>

</manifest>

0xc00000f
Сообщения: 1
Зарегистрирован: 17 янв 2019, 18:37

Re: Урок 32. Пишем простой браузер

Сообщение 0xc00000f » 17 янв 2019, 18:44

kefir писал(а):Выделяет красным строки:
<intent-filter>
<action android:name="android.intent.action.VIEW"></action>
<data android:scheme="http"></data>
<category android:name="android.intent.category.DEFAULT"></category>
</intent-filter>

Пишет мол: Activity supporting ACTION_VIEW is not set as BROWSABLE less....(Ctrl+F1)
Ensure the URL is supported by your app, to get installs and traffic to your app from Google Search.
Issue id: AppLinkUrlError.
Подскажите как решить проблему пожалуйста.
Мне помогли следующие изменения в манифесте:
<activity android:name=".BrowserActivity">
<intent-filter>
<action android:name="android.intent.action.VIEW"></action>
<data android:scheme="http"></data>
<category android:name="android.intent.category.BROWSABLE"></category>
</intent-filter>
</activity>
Другой способ решения предлагается здесь https://stackoverflow.com/questions/257 ... iew-action
Но я не совсем догнал, что тут происходит, может вы, коллеги, мне объясните :)

ilmaxwell
Сообщения: 2
Зарегистрирован: 20 янв 2019, 16:56

Re: Урок 32. Пишем простой браузер

Сообщение ilmaxwell » 20 янв 2019, 17:29

такой вопрос, решил сделать браузер с небольшими модификациями: прикрутил edittext чтобы вводить адрес, без активити которое создает интент view http, в общем у меня в манифесте

Код: Выделить всё

<activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <action android:name="android.intent.action.VIEW" />
                <data android:scheme="http"/>
                <category android:name="android.intent.category.LAUNCHER" />
                <category android:name="android.intent.category.BROWSABLE" />
            </intent-filter>
</activity>
почему не предлагается мое активити когда пытаюсь открыть ссылку с http? (варианты предлагаются но в них нет моего)

ilmaxwell
Сообщения: 2
Зарегистрирован: 20 янв 2019, 16:56

Re: Урок 32. Пишем простой браузер

Сообщение ilmaxwell » 21 янв 2019, 16:24

проблема в том, что активити запускается с помощью стартактивити только если оно принадлежит к категории дефолт, но добавлением строки не сработало, вот правильно:

Код: Выделить всё

<activity android:name=".MainActivity" android:screenOrientation="portrait">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />

            </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <data android:scheme="http"/>
                <data android:scheme="https"/>
                <category android:name="android.intent.category.BROWSABLE" />
                <category android:name="android.intent.category.DEFAULT"/>
            </intent-filter>
        </activity>

Vitas
Сообщения: 1
Зарегистрирован: 23 янв 2019, 19:28

Re: Урок 32. Пишем простой браузер

Сообщение Vitas » 23 янв 2019, 19:38

Ссылка ни в какую не открывается в моем браузере. Только во встроенном. Установлена Android Studio 3.3 система на эмуляторе Android 5.1(API 22). Файл манифеста. Чо не так?
[code][syntax=java]<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.p0321_simplebrowser">
<uses-permission android:name="android.permission.INTERNET"></uses-permission>

<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".BrowserActivity" android:label="MyBrowser">
<intent-filter>
<action android:name="android.intent.action.VIEW."></action>
<data android:scheme="http"></data>
<category android:name="android.intent.category.DEFAULT"></category>
</intent-filter>
</activity>
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>

</manifest>[/code][/syntax]
Добавил
[code]<data android:scheme="https"></data>
<category android:name="android.intent.category.BROWSABLE "></category>[/code]
Один хрен всё то же((

Попробовал создать собственный фильтр вместо ACTION_VIEW и прописал его в action в манифесте <activity BrowserActivity. Эмулятор ругнулся и закрыл приложение.

YaroslavH
Сообщения: 3
Зарегистрирован: 31 май 2019, 16:30

Re: Урок 32. Пишем простой браузер

Сообщение YaroslavH » 02 июн 2019, 15:12

mkey писал(а):Добрый день!
Вопрос: где находится этот настройщик манифеста, скрины которого в уроке? Никак не могу найти, может в новой версии студии его нет?
Настройщик манифеста, как на скрине - в Eclipse. В Android Studio такого нет.

YaroslavH
Сообщения: 3
Зарегистрирован: 31 май 2019, 16:30

Re: Урок 32. Пишем простой браузер

Сообщение YaroslavH » 02 июн 2019, 15:15

Если у кого-то на новой Android Studio возникает ошибка с отображением в собственном WebView страницы (это может быть на бОльших API, чем 10, пишет в собственном браузере ошибку net::ERR_CLEARTEXT_NOT_PERMITTED), рекомендуется подправить манифест:

<application
....
android:usesCleartextTraffic="true"
....>

mistercx
Сообщения: 3
Зарегистрирован: 22 мар 2020, 05:27

Re: Урок 32. Пишем простой браузер

Сообщение mistercx » 28 мар 2020, 02:04

0xc00000f писал(а):
17 янв 2019, 18:44
kefir писал(а):Выделяет красным строки:
<intent-filter>
<action android:name="android.intent.action.VIEW"></action>
<data android:scheme="http"></data>
<category android:name="android.intent.category.DEFAULT"></category>
</intent-filter>

Пишет мол: Activity supporting ACTION_VIEW is not set as BROWSABLE less....(Ctrl+F1)
Ensure the URL is supported by your app, to get installs and traffic to your app from Google Search.
Issue id: AppLinkUrlError.
Подскажите как решить проблему пожалуйста.
Мне помогли следующие изменения в манифесте:
<activity android:name=".BrowserActivity">
<intent-filter>
<action android:name="android.intent.action.VIEW"></action>
<data android:scheme="http"></data>
<category android:name="android.intent.category.BROWSABLE"></category>
</intent-filter>
</activity>
Другой способ решения предлагается здесь https://stackoverflow.com/questions/257 ... iew-action
Но я не совсем догнал, что тут происходит, может вы, коллеги, мне объясните :)
У меня ошибка в Манифесте пропала после добавления .BROWSABLE (т.е. и .DEFAULT и .BROWSABLE):

Код: Выделить всё

<intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <data android:scheme="http" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />

</intent-filter>

Alexanrd
Сообщения: 1
Зарегистрирован: 02 май 2020, 07:25

Re: Урок 32. Пишем простой браузер

Сообщение Alexanrd » 02 май 2020, 08:27

Появилась ошибка на этом уроке. Уроки прохожу на android studio 3.6.3.
Ошибка: unfortunately P032_SimpleBrowser has stopped.
Ошибка появляется после нажатия на кнопку WEB (появляется выбор между нашим Activity и Browse) при выборе нашего Activity с WebView.
При выборе Browser который установлен в системе ошибки на возникает, открывается сайт.

Убрал из Activity элемент WebViev, Activity открылось(без ошибок).
Добавляю WebViev на Activity, в классе не добавляю ни какого кода, ошибка появляется.
Убираю WebViev, ошибок нет.

У прoекта API 19
Проверял на API 21 и 29.
Также на Android Emulator и Genymotion.

Помогите пожалуйста разобратся.
Класс:

Код: Выделить всё

package com.pansoft.p032_simplebrowser;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.Window;

public class Browse2Activity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        getWindow().requestFeature(Window.FEATURE_PROGRESS);
       [color=#FF0000] setContentView(R.layout.activity_browse2);[/color]
    }
}
Activity

Код: Выделить всё

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".Browse2Activity">

    <WebView
        android:layout_width="409dp"
        android:layout_height="729dp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        tools:layout_editor_absoluteY="1dp"
        tools:ignore="MissingConstraints" />
</androidx.constraintlayout.widget.ConstraintLayout>
Манифест

Код: Выделить всё

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="com.pansoft.p032_simplebrowser">

    <uses-permission android:name="android.permission.INTERNET" />
    <application
        android:allowBackup="false"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".Browse2Activity">
            <intent-filter tools:ignore="AppLinkUrlError">
                <action android:name="android.intent.action.VIEW" />

                <data android:scheme="http" />
                <data android:scheme="https" />

                <category android:name="android.intent.category.BROWSABLE" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

Везде одна и та же ошибка(красная строчка из ошибки ссылается на красную строчку в классе):

Код: Выделить всё

05-02 05:14:38.516 2357-2357/com.pansoft.p032_simplebrowser E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.pansoft.p032_simplebrowser, PID: 2357
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.pansoft.p032_simplebrowser/com.pansoft.p032_simplebrowser.Browse2Activity}: android.view.InflateException: Binary XML file line #9: Error inflating class android.webkit.WebView
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2298)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
        at android.app.ActivityThread.access$800(ActivityThread.java:144)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:135)
        at android.app.ActivityThread.main(ActivityThread.java:5221)
        at java.lang.reflect.Method.invoke(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:372)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
     Caused by: android.view.InflateException: Binary XML file line #9: Error inflating class android.webkit.WebView
        at android.view.LayoutInflater.createView(LayoutInflater.java:633)
        at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:55)
        at android.view.LayoutInflater.onCreateView(LayoutInflater.java:682)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:741)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:365)
        at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:555)
        at androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:161)
        at com.pansoft.p032_simplebrowser.Browse2Activity.onCreate(Browse2Activity.java:14)
        at android.app.Activity.performCreate(Activity.java:5937)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360) 
        at android.app.ActivityThread.access$800(ActivityThread.java:144) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278) 
        at android.os.Handler.dispatchMessage(Handler.java:102) 
        at android.os.Looper.loop(Looper.java:135) 
        at android.app.ActivityThread.main(ActivityThread.java:5221) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at java.lang.reflect.Method.invoke(Method.java:372) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694) 
     Caused by: java.lang.reflect.InvocationTargetException
        at java.lang.reflect.Constructor.newInstance(Native Method)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:288)
        at android.view.LayoutInflater.createView(LayoutInflater.java:607)
        at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:55) 
        at android.view.LayoutInflater.onCreateView(LayoutInflater.java:682) 
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:741) 
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:806) 
        at android.view.LayoutInflater.inflate(LayoutInflater.java:504) 
        at android.view.LayoutInflater.inflate(LayoutInflater.java:414) 
        at android.view.LayoutInflater.inflate(LayoutInflater.java:365) 
        at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:555) 
        at androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:161) 
        [color=#FF0000]at com.pansoft.p032_simplebrowser.Browse2Activity.onCreate(Browse2Activity.java:14) [/color]
        at android.app.Activity.performCreate(Activity.java:5937) 
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105) 
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251) 
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360) 
        at android.app.ActivityThread.access$800(ActivityThread.java:144) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278) 
        at android.os.Handler.dispatchMessage(Handler.java:102) 
        at android.os.Looper.loop(Looper.java:135) 
        at android.app.ActivityThread.main(ActivityThread.java:5221) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at java.lang.reflect.Method.invoke(Method.java:372) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694) 
     Caused by: android.content.res.Resources$NotFoundException: String resource ID #0x2040002
        at android.content.res.Resources.getText(Resources.java:274)
        at android.content.res.Resources.getString(Resources.java:360)
        at com.android.org.chromium.content.browser.ContentViewCore.setContainerView(ContentViewCore.java:702)
        at com.android.org.chromium.content.browser.ContentViewCore.initialize(ContentViewCore.java:608)
        at com.android.org.chromium.android_webview.AwContents.createAndInitializeContentViewCore(AwContents.java:619)
        at com.android.org.chromium.android_webview.AwContents.setNewAwContents(AwContents.java:758)
        at com.android.org.chromium.android_webview.AwContents.<init>(AwContents.java:608)
        at com.android.org.chromium.android_webview.AwContents.<init>(AwContents.java:546)
        at com.android.webview.chromium.WebViewChromium.initForReal(WebViewChromium.java:312)
        at com.android.webview.chromium.WebViewChromium.access$100(WebViewChromium.java:97)
        at com.android.webview.chromium.WebViewChromium$1.run(WebViewChromium.java:264)
        at com.android.webview.chromium.WebViewChromium$WebViewChromiumRunQueue.drainQueue(WebViewChromium.java:124)
        at com.android.webview.chromium.WebViewChromium$WebViewChromiumRunQueue$1.run(WebViewChromium.java:111)
        at com.android.org.chromium.base.ThreadUtils.runOnUiThread(ThreadUtils.java:144)
        at com.android.webview.chromium.WebViewChromium$WebViewChromiumRunQueue.addTask(WebViewChromium.java:108)
        at com.android.webview.chromium.WebViewChromium.init(WebViewChromium.java:261)
    	at android.webkit.WebView.<init>(WebView.java

waat
Сообщения: 54366
Зарегистрирован: 31 окт 2020, 05:30

Re: Урок 32. Пишем простой браузер

Сообщение waat » 07 ноя 2020, 12:31


waat
Сообщения: 54366
Зарегистрирован: 31 окт 2020, 05:30

Re: Урок 32. Пишем простой браузер

Сообщение waat » 09 дек 2020, 22:20

http://audiobookkeeper.ruhttp://cottagenet.ruhttp://eyesvision.ruhttp://eyesvisions.comhttp://factoringfee.ruhttp://filmzones.ruhttp://gadwall.ruhttp://gaffertape.ruhttp://gageboard.ruhttp://gagrule.ruhttp://gallduct.ruhttp://galvanometric.ruhttp://gangforeman.ruhttp://gangwayplatform.ruhttp://garbagechute.ruhttp://gardeningleave.ruhttp://gascautery.ruhttp://gashbucket.ruhttp://gasreturn.ruhttp://gatedsweep.ruhttp://gaugemodel.ruhttp://gaussianfilter.ruhttp://gearpitchdiameter.ru
http://geartreating.ruhttp://generalizedanalysis.ruhttp://generalprovisions.ruhttp://geophysicalprobe.ruhttp://geriatricnurse.ruhttp://getintoaflap.ruhttp://getthebounce.ruhttp://habeascorpus.ruhttp://habituate.ruhttp://hackedbolt.ruhttp://hackworker.ruhttp://hadronicannihilation.ruhttp://haemagglutinin.ruhttp://hailsquall.ruhttp://hairysphere.ruhttp://halforderfringe.ruhttp://halfsiblings.ruhttp://hallofresidence.ruhttp://haltstate.ruhttp://handcoding.ruhttp://handportedhead.ruhttp://handradar.ruhttp://handsfreetelephone.ru
http://hangonpart.ruhttp://haphazardwinding.ruhttp://hardalloyteeth.ruhttp://hardasiron.ruhttp://hardenedconcrete.ruhttp://harmonicinteraction.ruhttp://hartlaubgoose.ruhttp://hatchholddown.ruhttp://haveafinetime.ruhttp://hazardousatmosphere.ruhttp://headregulator.ruhttp://heartofgold.ruhttp://heatageingresistance.ruhttp://heatinggas.ruhttp://heavydutymetalcutting.ruhttp://jacketedwall.ruhttp://japanesecedar.ruhttp://jibtypecrane.ruhttp://jobabandonment.ruhttp://jobstress.ruhttp://jogformation.ruhttp://jointcapsule.ruhttp://jointsealingmaterial.ru
http://journallubricator.ruhttp://juicecatcher.ruhttp://junctionofchannels.ruhttp://justiciablehomicide.ruhttp://juxtapositiontwin.ruhttp://kaposidisease.ruhttp://keepagoodoffing.ruhttp://keepsmthinhand.ruhttp://kentishglory.ruhttp://kerbweight.ruhttp://kerrrotation.ruhttp://keymanassurance.ruhttp://keyserum.ruhttp://kickplate.ruhttp://killthefattedcalf.ruhttp://kilowattsecond.ruhttp://kingweakfish.ruhttp://kinozones.ruhttp://kleinbottle.ruhttp://kneejoint.ruhttp://knifesethouse.ruhttp://knockonatom.ruhttp://knowledgestate.ru
http://kondoferromagnet.ruhttp://labeledgraph.ruhttp://laborracket.ruhttp://labourearnings.ruhttp://labourleasing.ruhttp://laburnumtree.ruhttp://lacingcourse.ruhttp://lacrimalpoint.ruhttp://lactogenicfactor.ruhttp://lacunarycoefficient.ruhttp://ladletreatediron.ruhttp://laggingload.ruhttp://laissezaller.ruhttp://lambdatransition.ruhttp://laminatedmaterial.ruhttp://lammasshoot.ruhttp://lamphouse.ruhttp://lancecorporal.ruhttp://lancingdie.ruhttp://landingdoor.ruhttp://landmarksensor.ruhttp://landreform.ruhttp://landuseratio.ru
http://languagelaboratory.ruhttp://largeheart.ruhttp://lasercalibration.ruhttp://laserlens.ruhttp://laserpulse.ruhttp://laterevent.ruhttp://latrinesergeant.ruhttp://layabout.ruhttp://leadcoating.ruhttp://leadingfirm.ruhttp://learningcurve.ruhttp://leaveword.ruhttp://machinesensible.ruhttp://magneticequator.ruhttp://magnetotelluricfield.ruhttp://mailinghouse.ruhttp://majorconcern.ruhttp://mammasdarling.ruhttp://managerialstaff.ruhttp://manipulatinghand.ruhttp://manualchoke.ruhttp://medinfobooks.ruhttp://mp3lists.ru
http://nameresolution.ruhttp://naphtheneseries.ruhttp://narrowmouthed.ruhttp://nationalcensus.ruhttp://naturalfunctor.ruhttp://navelseed.ruhttp://neatplaster.ruhttp://necroticcaries.ruhttp://negativefibration.ruhttp://neighbouringrights.ruhttp://objectmodule.ruhttp://observationballoon.ruhttp://obstructivepatent.ruhttp://oceanmining.ruhttp://octupolephonon.ruhttp://offlinesystem.ruhttp://offsetholder.ruhttp://olibanumresinoid.ruhttp://onesticket.ruhttp://packedspheres.ruhttp://pagingterminal.ruhttp://palatinebones.ruhttp://palmberry.ru
http://papercoating.ruhttp://paraconvexgroup.ruhttp://parasolmonoplane.ruhttp://parkingbrake.ruhttp://partfamily.ruhttp://partialmajorant.ruhttp://quadrupleworm.ruhttp://qualitybooster.ruhttp://quasimoney.ruhttp://quenchedspark.ruhttp://quodrecuperet.ruhttp://rabbetledge.ruhttp://radialchaser.ruhttp://radiationestimator.ruhttp://railwaybridge.ruhttp://randomcoloration.ruhttp://rapidgrowth.ruhttp://rattlesnakemaster.ruhttp://reachthroughregion.ruhttp://readingmagnifier.ruhttp://rearchain.ruhttp://recessioncone.ruhttp://recordedassignment.ru
http://rectifiersubstation.ruhttp://redemptionvalue.ruhttp://reducingflange.ruhttp://referenceantigen.ruhttp://regeneratedprotein.ruhttp://reinvestmentplan.ruhttp://safedrilling.ruhttp://sagprofile.ruhttp://salestypelease.ruhttp://samplinginterval.ruhttp://satellitehydrology.ruhttp://scarcecommodity.ruhttp://scrapermat.ruhttp://screwingunit.ruhttp://seawaterpump.ruhttp://secondaryblock.ruhttp://secularclergy.ruhttp://seismicefficiency.ruhttp://selectivediffuser.ruhttp://semiasphalticflux.ruhttp://semifinishmachining.ruhttp://spicetrade.ruhttp://spysale.ru
http://stungun.ruhttp://tacticaldiameter.ruhttp://tailstockcenter.ruhttp://tamecurve.ruhttp://tapecorrection.ruhttp://tappingchuck.ruhttp://taskreasoning.ruhttp://technicalgrade.ruhttp://telangiectaticlipoma.ruhttp://telescopicdamper.ruhttp://temperateclimate.ruhttp://temperedmeasure.ruhttp://tenementbuilding.rutuchkashttp://ultramaficrock.ruhttp://ultraviolettesting.ru

Ответить