作者:刘志樺伟宇佳君 | 来源:互联网 | 2022-12-02 18:29
我开始在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
请注意,即使是URL的字符串,也说"...网站http://darkorbit.com/ ...",而不是"...网站https://darkorbit.com/ ..."是硬编码,并说" https://darkorbit.com/ ".此外,我正在设置为运行Android 9的Google Pixel 2的模拟器上测试该应用.
任何帮助,将不胜感激.谢谢.
1> Ümañg ßürmån..:
解:
在application
标记中添加以下行:
android:usesCleartextTraffic="true"
如下所示:
希望能帮助到你.
无法解决仍在Android Pie中显示错误
它不适用于android:networkSecurityConfig设置
这已经存在,并且仍然显示相同的错误!!! 1
@Miguel检查您的AndroidManifest.xml中的
下是否有一个networkSecurityConfig。如果这样做,则可以尝试将其删除(如果不需要),也可以对其进行更改以允许您的域。这个答案可能也对您有帮助:/sf/ask/17360801/
2> 小智..:
当您调用“ https://darkorbit.com/ ”时,服务器会认为它缺少“ www”,因此它将调用重定向到“ http://www.darkorbit.com/ ”,然后重定向到“ https:// www”。 darkorbit.com/ “,因为它是” http“调用,所以您的WebView调用在第一次重定向时被阻止。您可以改用“ https://www.darkorbit.com/ ”,它将解决此问题。