Ответ 1
Решение:
Добавьте строку ниже в свой тег application
:
android:usesCleartextTraffic="true"
Как показано ниже:
<application
....
android:usesCleartextTraffic="true"
....>
Надеюсь, поможет.
Я начинаю работать над приложением на Android, поэтому у меня не так много. Пока у меня есть только WebView. Я создал проект в Android Studio, и мой проект был установлен как Android InstantApp. Я не уверен, почему/как, но я предполагаю, что я упустил возможность для этого при создании проекта.
Я получаю сообщение об ошибке из WebView: net :: ERR_CLEARTEXT_NOT_PERMITTED. Когда я погуглил ошибку, я увидел, что когда приложение представляет собой InstantApp, WebViews может загружать только сайты с HTTPS и не может загружать HTTP-сайт.
Цель этого приложения - быть чрезвычайно простым Flash-плеером только для одного сайта. Это должно иметь лучшую производительность при запуске игры, требующей Flash. Эта игра на darkorbit.com, которая является HTTPS.
MainActivity.java:
package com.tylerr147.darkorbit;
import android.content.ComponentName;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.webkit.WebSettings;
import android.webkit.WebView;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WebView wv = findViewById(R.id.webView1);
wv.loadUrl("https://darkorbit.com/");
wv.setWebViewClient(new CustomWebViewClient());
WebSettings webSettings = wv.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setPluginState(WebSettings.PluginState.ON);
}
}
и CustomWebViewClient.java
package com.tylerr147.darkorbit;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class CustomWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
}
Мой вопрос: как я могу отключить мое приложение как InstantApp или как я могу получить этот WebView для отображения сайта?
Я чувствую, что это важно, я упомяну также несколько других деталей: в приложении, где он отображает WebView, также говорится, что "веб-страница на http://darkorbit.com/ " не может быть загружена, потому что: net :: ERR_CLEARTEXT_NOT_PERMITTED
Обратите внимание, что здесь написано "... site at http://darkorbit.com/...", а не "... site at https://darkorbit.com/...", даже если строка для URL жестко запрограммирован и говорит " https://darkorbit.com/ ". Кроме того, я тестирую приложение на эмуляторе, настроенном как Google Pixel 2 под управлением Android 9.
Любая помощь будет оценена. Спасибо.
Решение:
Добавьте строку ниже в свой тег application
:
android:usesCleartextTraffic="true"
Как показано ниже:
<application
....
android:usesCleartextTraffic="true"
....>
Надеюсь, поможет.
<?xml version='1.0' encoding='utf-8'?>
<manifest android:hardwareAccelerated="true" android:versionCode="1" android:versionName="0.0.1" package="com.abitech.ckr_abiwhiz" xmlns:android="http://schemas.android.com/apk/res/android">
<supports-screens android:anyDensity="true" android:largeScreens="true" android:normalScreens="true" android:resizeable="true" android:smallScreens="true" android:xlargeScreens="true" />
<uses-permission android:name="android.permission.INTERNET" />
<application android:hardwareAccelerated="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:usesCleartextTraffic="true">
<activity android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale" android:label="@string/activity_name" android:launchMode="singleTop" android:name="MainActivity" android:theme="@android:style/Theme.DeviceDefault.NoActionBar" android:windowSoftInputMode="adjustResize">
<intent-filter android:label="@string/launcher_name">
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<provider android:authorities="${applicationId}.provider" android:exported="false" android:grantUriPermissions="true" android:name="org.apache.cordova.camera.FileProvider">
<meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/camera_provider_paths" />
</provider>
<provider android:authorities="${applicationId}.provider" android:exported="false" android:grantUriPermissions="true" android:name="de.appplant.cordova.emailcomposer.EmailComposerProvider">
<meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/emailcomposer_provider_paths" />
</provider>
<provider android:authorities="${applicationId}.provider" android:exported="false" android:grantUriPermissions="true" android:name="de.appplant.cordova.plugin.notification.util.AssetProvider">
<meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/localnotification_provider_paths" />
</provider>
<receiver android:exported="false" android:name="de.appplant.cordova.plugin.localnotification.TriggerReceiver" />
<receiver android:exported="false" android:name="de.appplant.cordova.plugin.localnotification.ClearReceiver" />
<activity android:exported="false" android:launchMode="singleInstance" android:name="de.appplant.cordova.plugin.localnotification.ClickReceiver" android:theme="@android:style/Theme.Translucent" />
</application>
<uses-sdk android:minSdkVersion="19" android:targetSdkVersion="28" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-feature android:name="android.hardware.location.gps" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
</manifest>
это мой файл манифеста взглянуть на этот mamañg ßürmån
и эта линия уже там
<application android:hardwareAccelerated="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:usesCleartextTraffic="true">
извините за поздний пост это работает после того, как я перезагрузил компьютер
Когда вы звоните по адресу " https://darkorbit.com/ ", ваш сервер обнаруживает, что на нем отсутствует "www", поэтому он перенаправляет вызов на " http://www.darkorbit.com/ ", а затем на " https://www. darkorbit.com/ ", ваш вызов WebView блокируется при первом перенаправлении, так как это вызов" http ". Вместо этого вы можете позвонить по адресу " https://www.darkorbit.com/ ", и это решит проблему.