首页 > 解决方案 > android webview http 网站意图

问题描述

android 9.0 pie compileSdkVersion 26 minSdkVersion 15 targetSdkVersion 28

嗨,我正在尝试发布我的 android 应用程序,但我遇到了问题

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

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

和一个出版的..但我收到了这封邮件

Intent Scheme Hijacking 您的应用正在使用易受 Intent 方案劫持的 WebView。要确认您已正确升级,请将应用的更新版本提交到 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>

活动.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();
        }
    }

我真的不知道如何解决这个问题谷歌的答案 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>

标签: androidandroid-intentandroid-security

解决方案


将您的 sdk 版本更改为

compileSdkVersion 29
 minSdkVersion 15
targetSdkVersion 29   

推荐阅读