java - 如何将 url 参数强制加载到 webview 中加载的所有 url?
问题描述
我将如何将 url 参数 ?theme=androidphone 应用于此 webview 加载的所有 url。我在我的 android 应用程序中包含了一段 webview 代码来考虑
webView = (WebView) findViewById(R.id.webview);
webView.setWebViewClient(new Callback());
webView.loadUrl("https://www.welcometomywebsite.com/?theme=androidphone");
//webView.loadUrl("https://filebin.net/");
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setAllowFileAccess(true);
webSettings.setAllowContentAccess(true);
webSettings.setAllowFileAccessFromFileURLs(true);
webSettings.setAppCacheEnabled(true);
webSettings.setDomStorageEnabled(true);
webSettings.setLoadWithOverviewMode(true);
if (Build.VERSION.SDK_INT >= 21) {
webSettings.setMixedContentMode(0);
webView.setLayerType(View.LAYER_TYPE_HARDWARE, null);
} else if (Build.VERSION.SDK_INT >= 19) {
webView.setLayerType(View.LAYER_TYPE_HARDWARE, null);
} else {
webView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
}
解决方案
将参数添加到所有 url
@Override
public boolean shouldOverrideUrlLoading(WebView webView, String url) {
//appending parameter to whatever url loading in web view
String newUrl = url + "?theme=androidphone";
//passing modified url to web view
webView.loadUrl(newUrl);
return false;
}
笔记:
当该shouldOverrideUrlLoading()
方法返回 false 时,作为参数传递给该方法的 URL 将在 WebView 而不是 Android 标准浏览器中加载。
更新:
webView = (WebView) findViewById(R.id.webview);
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView webView, String url){
//appending parameter to whatever url loading in web view
String newUrl = url + "?theme=androidphone";
//passing modified url to web view
webView.loadUrl(newUrl);
return false;
}
});
/*webView settings can be defined here*/
webView.loadUrl("https://www.welcometomywebsite.com/");
推荐阅读
- sql - 将列值转换为字符串
- c - MacOS 中 sem_getvalue() 的替换是什么?
- javascript - 如何在浏览器中打开外部 WebView 链接?
- javascript - 在第 n 个字符之前和之后的匹配组
- android - 按下按钮时将网格布局的可见性从不可见设置为可见
- powershell - 使用 powershell 在私有模式下使用 firefox 打开多个 URL
- autohotkey - Autohotkey:如何确定是否在 emac 或 notepad3 中打开了文本文件
- javascript - 使用 useState 挂钩时 - 更改 setState 函数调用顺序是否重要?
- python - 创建超级用户“psycopg2.errors.UndefinedTable: 关系”users_profile“不存在”中的 django+heroku 错误
- symfony-3.4 - 基于 EntityType 中的 ID 选择的值