我开始在Android上开发一个应用程序,所以我没有太多.到目前为止,我只有一个网络视图.我在Android Studio中创建了这个项目,我的项目被设置为Android InstantApp.我不确定为什么/如何,但我猜我在创建项目时忽略了一个选项.

我从网络视图中得到一个错误,说net::ERR_CLEARTEXT_不允许.当我在谷歌上搜索错误时,我发现当应用程序是InstantApp时,WebView只能加载HTTPS站点,而不能加载HTTP站点.

这个应用程序的目的是成为一个非常简单的Flash播放器,只适用于一个网站.这是为了在运行需要Flash的游戏时有更好的性能.这个游戏在Darkorbit.com上,也就是HTTPS上.

主要活动.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;
    }
}

我的问题是:

我觉得重要的是我还提到了一些其他细节:

请注意,上面写着"……地点在http://darkorbit.com/……",而不是"https://darkorbit.com/号现场"尽管URL的字符串是硬编码的,并显示"https://darkorbit.com/".此外,我正在一个模拟器上测试这个应用,该模拟器被设置为运行Android 9的Google Pixel 2.

任何帮助都将不胜感激.非常感谢.

推荐答案

Solution:

application标记中添加以下行:

android:usesCleartextTraffic="true"

如下所示:

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

UPDATE:如果您有网络安全配置,如:android:networkSecurityConfig="@xml/network_security_config"

无需如上所示将明文通信量设置为true,而是使用以下代码:

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="true">
        ....
        ....
    </domain-config>

    <base-config cleartextTrafficPermitted="false"/>
</network-security-config>  

cleartextTrafficPermitted设置为true

希望有帮助.

Android相关问答推荐

listOf(listOf(字符串))在lazyArchitect(lazyStream)中合成

更新画布上的绘图以具有水平填充

打开平板电脑的下载文件夹中的文件,例如使用其mimeType将Intent发送到我们的应用程序

广播接收者意图从服务内设置,而不被其他服务接收

KMM项目生成错误-';在项目';中找不到测试类:共享';

泛型类型lambda函数参数作为函数参数

在模块中找到重复的类com.google.Firebase.auth.ktx.AuthKt||Android Studio

Android App Google AdMob";广告加载失败:3;带有测试ID,&q;广告加载失败:1 for My Gahad

Android Jetpack Compose调用view-model函数仅一次

触发PurchasesUpdatedListener回调时,billingClient.launchBillingFlow之前设置的成员变量丢失

警告:应用必须面向 Android 13(API 级别 33)或更高版本.确实如此

了解 CoroutineScope(Job() + Dispatchers.Main) 语法

修复报错 RecyclerView: No adapter attached;跳过布局

Android Studio电鳗:javaHome好像无效

自定义 Compose Arrangement 以在 LazyRow/LazyColumn 的开头和结尾添加额外的间距

处理程序 postDelayed 方法不起作用,kotlin 应用程序卡在启动画面上

react 从输入中找到路径'lib/arm64-v8a/libfbjni.so'的本机2个文件

在 jetpack compose 中使用 viewmodel 的最佳实践

为什么在try 实例化 Mediaplayer 时会出现 NullPointerException?安卓Kotlin

在delphi中将Jnet_uri转换为Tbitmap