@author: 068赖昌平 实验效果: 首先需要画一个界面,所以首先编辑activity_main.xml MainActivity.java 本次实验主要是探索一下Intent的使用,并且自定义了WebView进行隐式Intent的使用,所以也看了不少文档和博客进行学习,总的来说,Intent的内容蛮多的,也不容易,不过本次实验并不难做,也只是试试水,相信在今后的学习中能够不断进步。 将 改成 在AndroidManifest.xml中添加一个属性 我使用的是API29的模拟器,把它降为API28的模拟器就可以了 [1] https://blog.csdn.net/qq_36271550/article/details/98874574
Andriod开发实验四
自定义WebView验证隐式Intent的使用一、实验环境:
Android Studio + Android 5.0
二、实验内容
1.获取URL地址并启动隐式Intent的调用
代码
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android" xmlns:tools="https://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/textView"/> <EditText android:id="@+id/editText" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/textView" android:layout_centerHorizontal="true" android:layout_marginTop="26dp" android:ems="10" android:hint="在此输入网址"> <requestFocus /> </EditText> <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/editText" android:layout_marginTop="14dp" android:layout_toRightOf="@+id/textView" android:layout_marginLeft="160dp" android:text="浏览该网页"/> </RelativeLayout>
public class MainActivity extends AppCompatActivity { private EditText urlEditText; private Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); this.button = findViewById(R.id.button);//按钮 this.urlEditText = findViewById(R.id.editText);//文本框 button.setOnClickListener(new View.OnClickListener() {//点击事件 @Override public void onClick(View v) { String url = urlEditText.getText().toString();//获取url Intent intent = new Intent(Intent.ACTION_VIEW);//为Intent设置Action Uri uri = Uri.parse(url);//转化为uri intent.setData(uri);//为Intent设置data属性 startActivity(intent); } }); } }
效果图
选择谷歌浏览器
2.自定义WebView来加载URL
1.新建一个工程或Activity,活动命名为WebViewActivity
2.编辑xml文件,添加一个WebView,代码
<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="https://schemas.android.com/apk/res/android" xmlns:tools="https://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".WebViewActivity"> <WebView android:id="@+id/webView" android:layout_width="match_parent" android:layout_height="match_parent"/> </androidx.constraintlayout.widget.ConstraintLayout>
3.WebViewActivity.java
public class WebViewActivity extends AppCompatActivity { WebView webView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_web_view); //获得浏览器webView控件 webView = findViewById(R.id.webView); webView.getSettings().setJavaScriptEnabled(true); webView.getSettings().setAllowFileAccess(true); webView.getSettings().setAllowContentAccess(true); //得到鼠标点击之后的intent Intent intent = getIntent(); Uri uri = intent.getData();//获取data属性 String urlString = null; try { urlString = new URL(uri.getScheme(), uri.getHost(), uri.getPath()).toString(); } catch (MalformedURLException e) { e.printStackTrace(); } webView.loadUrl(urlString);//加载 //手机默认浏览器打开,为了通过WebView打开网页,设置 webView.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { if(url.startsWith("http:") || url.startsWith("https:")){ view.loadUrl(url); return false; } view.loadUrl(url); return true; } }); }
4.效果图
可以看出,浏览器列表出现了刚刚自定义的浏览器
结语
总结一下遇到的问题吧一、Android 网页无法打开 net:ERR_UNKNOWN_URL_SCHEME
我的解决办法:
webView.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } });
webView.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { if(url.startsWith("http:") || url.startsWith("https:")){ view.loadUrl(url); return false; } view.loadUrl(url); return true; } });
二、Android使用WebView无法显示网页net:ERR_CLEARTEXT_NOT_PERMITTED
我的解决方法:
android:usesCleartextTraffic="true"
三、Android使用WebView无法显示网页net:ERR_ACCESS_DENIED
我的解决办法
参考文献(博客)
[2] https://blog.csdn.net/dengdongqi/article/details/89679521
感谢以上几位同学,要不我可能交不上作业了。
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算