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>
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>