cordova - 出于开发目的,如何使用本地 url 打开 Cordova webview
问题描述
我有一个简单的 Cordova 应用程序,它使用我的网站 url 加载 web 视图。问题是该站点尚未投入生产,因此我需要使用http://example.test
而不是https://example.com
本地开发。
我尝试将本地 url 放在 webview 打开方法中:
cordova.InAppBrowser.open('http://example.test');
但它给了我以下错误:
Application Error. net::ERR_CLEARTEXT_NOT_PERMITTED (http://example.test/)
上传预生产网站是解决此问题的唯一方法吗?我找不到任何选项/插件来在 web 视图中使用本地域。
解决方案
从Android 9 (Pie)开始,您将无法再连接到 http:// 网站。这是一篇关于它的博文。
要解决这个问题:
在您的 AndroidManifest 中,您必须添加android:usesCleartextTraffic="true"
例如,您可以将其添加到您的config.xml
<widget xmlns:android="http://schemas.android.com/apk/res/android" ...>
<platform name="android">
<edit-config file="app/src/main/AndroidManifest.xml" mode="merge" target="/manifest/application">
<application android:usesCleartextTraffic="true" />
</edit-config>
...
</platform>
如果你这样做,你必须将模式添加xmlns:android="http://schemas.android.com/apk/res/android"
到你的<widget>
-tag 中。请参阅此答案以供参考。
推荐阅读
- javascript - 如何在异步承诺中加入 socket.io 房间?
- amazon-web-services - AWS Athena - HIVE_UNKNOWN_ERROR:无法在 Athena 上创建输入格式
- javascript - 如何有重叠的药丸进度条
- android - Android Studio 发生了什么?
- javascript - 在 React 中仅在表单值中插入唯一 ID
- javascript - 我可以在 html 页面中保存文本框/下拉菜单选择的值以便再次加载它吗?
- android - 如何将大小 > 10,000 的 Arraylist 设置为 RecyclerView
- php - 即使正确输入验证码,PHP Captcha 也会显示错误消息
- swift - 如何从 DropBox swift 获取文件/文件夹列表?
- regression - 如何从Stata中的分类变量自动创建虚拟变量?