android webview http 站点意图

android webview http site intent

android 9.0 饼 编译SDK版本26 minSdkVersion 15 targetSdkVersion 28

你好, 我正在尝试发布我的 android 应用 但是我有一个问题

android 9.0 不支持 http 所以,我更改了这样的代码

    <application
        android:usesCleartextTraffic="true"
        android:allowBackup="true"

并已发布..但我收到了这封邮件

意图方案劫持 您的应用程序使用的 WebView 容易受到 Intent 方案劫持。 要确认您已正确升级,请将应用的更新版本提交到 Play 管理中心,并在五小时后回来查看以确保警告消失。

这是我的代码 AndroidManifest.xml

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="{value}"
        android:usesCleartextTraffic="true">

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

Activity.java

        public boolean shouldOverrideUrlLoading(WebView view, String url) 
        {
            if (url.substring(0, 6).equals("intent"))
            {
                LoadEduManager(url);
            }
            else
            {
                view.loadUrl(url);
            }
            return true;
        }

public void LoadEduManager(String url)
    {
        boolean flag = true;
        try
        {
            PackageManager pm = getApplicationContext().getPackageManager();

            String appPkg = "com.cdn.";
            PackageInfo info = pm.getPackageInfo(appPkg, PackageManager.GET_ACTIVITIES);
        }
        catch (PackageManager.NameNotFoundException e)
        {
            flag = false;
        }

        if (flag)
        {
            try 
            {
                Intent intent = Intent.parseUri(url, Intent.URI_INTENT_SCHEME);
                startActivity(intent);
            }
            catch (URISyntaxException e) 
            {
                e.printStackTrace();
            }
        }
        else
        {
            new AlertDialog.Builder(Activity_Notice.this)
            .setTitle("")
            .setCancelable(false)
            .setMessage("")
            .setPositiveButton("확     인", new DialogInterface.OnClickListener() 
            {               
                @Override
                public void onClick(DialogInterface dialog, int which) 
                {
                    Intent intent = new Intent(Intent.ACTION_VIEW);
                    intent.setData(Uri.parse(""));
                    startActivity(intent);
                }
            })
            .show();
        }
    }

我真的不知道如何解决这个问题 google的回答 https://support.google.com/faqs/answer/9101196?hl=en

我试试这个案例 如果我随后连接 http 站点,则不会显示错误页面 但是,我收到 Jquery 错误。如果我使用浏览器输入,在这种情况下它会正常出现

<application usesCleartextTraffic=false networkSecurityConfig="@xml/network_security_config">

network_security_config

<network-security-config>
    <domain-config cleartextTrafficPermitted="true">
        <domain includeSubdomains="true">yeosj.com</domain>

    </domain-config>
</network-security-config>

将您的 sdk 版本更改为

compileSdkVersion 29
 minSdkVersion 15
targetSdkVersion 29   

像这样修改你的network_security_config文件并检查

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <base-config cleartextTrafficPermitted="true">
        <trust-anchors>
            <certificates src="system" />
        </trust-anchors>
    </base-config>
</network-security-config>