我对 css 和 android 很陌生。我正在尝试在网络视图中加载要点,但是当我使用时代码的缩进没有出现当webview.loadData(content, "text/html", "utf-8");我使用时它运行良好webview.loadUrl(url);,但我想要前一个。我在这里错过了一些大事吗?哦,缩进是通过 css property 来体现的white-space: pre;。这是我的代码:
final WebView webview = (WebView)getActivity().findViewById(R.id.algoView);
webview.getSettings().setJavaScriptEnabled(true);
//webview.loadUrl("https://gist.github.com/tanaykumarbera/c9f7f3e7490a1c002649/" ); // works perfectly
AsyncHttpClient client = new AsyncHttpClient();
client.get("https://gist.github.com/tanaykumarbera/c9f7f3e7490a1c002649", new AsyncHttpResponseHandler() {
@Override
public void onStart() {
}
@Override
public void onSuccess(int statusCode, Header[] headers, byte[] res) {
String data="";
ByteArrayInputStream b = new ByteArrayInputStream(res);
String response = "";int c;
while( (c = b.read()) != -1) {
response += Character.toString((char) c);
}
webview.loadData(response, "text/html", "utf-8"); …Run Code Online (Sandbox Code Playgroud) 我想WebView通过操作一些 DOM 元素来显示一个网站。我的意思是,我想删除一个特殊的 div 元素或用某些东西替换它。为此,我做了这样的事情:为了替换我使用这个模型的东西
document.getElementById("demo").innerHTML = "Hello World!";
Run Code Online (Sandbox Code Playgroud)
我将它应用到 Android 上WebView是这样的:
public class WebClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
@Override
public void onPageFinished(WebView view, final String url) {
view.loadUrl("javascript:document.getElementById(\"jumbotron-company\").innerHTML = \"\";");
}
}
Run Code Online (Sandbox Code Playgroud)
它可以在我的 API 为 18 的设备上工作,但不能在 API 大于 18 的模拟器或设备上工作
单击 WebView 页面内的链接或按钮时如何防止导航到另一个页面(我不想禁用触摸侦听器)。
我正在使用 EmberJs 开发 Cordova 应用程序。我需要本地 ajax 调用,即 ajax 调用 file:/// url。科尔多瓦不允许这样做。所以我发现我需要修改Cordova WebView设置。为此,我尝试了这段代码:
\n\nimport android.os.Build;\nimport android.os.Bundle;\nimport org.apache.cordova.*;\nimport org.apache.cordova.engine.SystemWebView;\nimport android.webkit.WebSettings;\n\npublic class MainActivity extends CordovaActivity\n{\n SystemWebView webView = null;\n\n @Override\n public void onCreate(Bundle savedInstanceState)\n {\n super.onCreate(savedInstanceState);\n // Set by <content src="index.html" /> in config.xml\n webView = (SystemWebView) appView.getView();\n WebSettings settings = webView.getSettings();\n if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {\n settings.setAllowFileAccessFromFileURLs(true);\n settings.setAllowUniversalAccessFromFileURLs(true);\n }\n loadUrl(launchUrl);\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n\n但我总是收到以下错误:
\n\nRuntime: FATAL EXCEPTION: main\njava.lang.RuntimeException: Unable to start activity ComponentInfo{com.scb.prototype/com.scb.prototype.MainActivity}: java.lang.NullPointerException: Attempt to invoke interface method \'android.view.View org.apache.cordova.CordovaWebView.getView()\' …Run Code Online (Sandbox Code Playgroud) 我希望我的一个包含 webview 的视图控制器每次都以横向模式出现。我写过这样的代码
导入 UIKit 导入 WebKit
类 DrawWebViewController: UIViewController{
@IBOutlet var scrollView: UIScrollView!
@IBOutlet var webView: UIWebView!
Run Code Online (Sandbox Code Playgroud)
// var webAView: WKWebView?
override func loadView() {
super.loadView()
// resizeWebView()
}
Run Code Online (Sandbox Code Playgroud)
/* func resizeWebView(){
webView.scalesPageToFit = true
webView.contentMode = UIViewContentMode.scaleToFill
webView.isMultipleTouchEnabled = true
webView.autoresizingMask = UIViewAutoresizing.flexibleWidth
self.view.addSubview(webView)
}*/
var newUrlVal = "http://wonderhomes.co/draw.php?id=bedroom"
override func viewDidLoad() {
super.viewDidLoad()
if let url = URL (string: newUrlVal){
let requestObj = URLRequest(url: url)
_ = webView.loadRequest(requestObj)
let value = UIInterfaceOrientation.landscapeLeft.rawValue
UIDevice.current.setValue(value, forKey: "orientation")
}
//Image …Run Code Online (Sandbox Code Playgroud) 我正在 Xcode 8.3 中使用 XCTest 编写 UI 自动化测试。我可以访问 a 中的 HTML 复选框UIWebView,例如:
self.app.otherElements["webview_id"].switches[@"0"]
Run Code Online (Sandbox Code Playgroud)
但如何检查该复选框当前是否已选中?该.selected属性总是返回 0,而且我还没有找到任何其他似乎合适的属性。
我有下面的 webview 组件,我希望在移动浏览器应用程序中打开链接,而不是在我的应用程序中当前的 webview 中打开。
return() {
<WebView source={{ html: `<a href="https://www.google.com">Google</a>`}} />
}
Run Code Online (Sandbox Code Playgroud) 嘿伙计们,有人知道为什么我不能在 ModalBottomSheet 中垂直滚动 WebView?这是我的代码,如果有什么问题,请告诉我或给我一些建议。
showModalBottomSheet(
context: context,
isScrollControlled: true,
backgroundColor: Colors.transparent,
builder: (context) => Container(
height: MediaQuery.of(context).size.height * 0.75,
decoration: new BoxDecoration(
color: Colors.white,
borderRadius: new BorderRadius.only(
topLeft: const Radius.circular(25.0),
topRight: const Radius.circular(25.0),
),
),
child: Padding(
padding: EdgeInsets.fromLTRB(0, 23, 0, 0),
child: WebView(
initialUrl: 'https://www.sicepat.com/checkAwb/',
javascriptMode: JavascriptMode.unrestricted,
onWebViewCreated: (controller) {
_myController = controller;
},
onPageFinished: (initialUrl) {
_myController.evaluateJavascript("document.getElementsByClassName('ws-header-container')[0].style.display='none';");
_myController.evaluateJavascript("document.getElementsByClassName('ws-footer-page')[0].style.display='none';");
},
)
),
),
);
Run Code Online (Sandbox Code Playgroud) 我是 IOS 新人。我想更改 WebView 中的字体。
我的 webView 页面加载如下:
// contentRendered - 来自 html 等 API
self?.webView.loadHTMLString(contentRendered, baseURL: nil)
Run Code Online (Sandbox Code Playgroud)
我有更改字体的代码:
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
let font = UIFont.init(name: "Quicksand-Regular", size: 22)
let jsFont = "document.getElementsByTagName('body')[0].style.fontFamily = '\(font!)';"
webView.evaluateJavaScript(jsFont, completionHandler: nil)
}
Run Code Online (Sandbox Code Playgroud)
但这不起作用。Quicksand-Regular我在资源文件夹中有
更新:
let jsFont = "document.getElementsByTagName('body')[0].style.fontFamily = 'Quicksand-Regular';"
webView.evaluateJavaScript(jsFont, completionHandler: nil)
Run Code Online (Sandbox Code Playgroud)
也不起作用
我制作了涉及aspx 页面的小应用程序,我尝试打开它并抛出我的 webview,但我得到了空白屏幕。
我尝试用 Chrome 浏览器打开它,它给了我所需的证书
我的代码非常简单我添加了一些文档来解释发生了什么
@SuppressLint("SetJavaScriptEnabled")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_web);
Bundle bundle = getIntent().getExtras();
if(bundle != null){
urlSite = bundle.getString("passed_url");
}
_toolbar = (Toolbar)findViewById(R.id.toolbar);
setSupportActionBar(_toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
_toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onBackPressed();
}
});
webView = (WebView) findViewById(R.id.webView);
WebSettings webSettings = webView.getSettings();
// enable javascript
webSettings.setJavaScriptEnabled(true);
webSettings.setDomStorageEnabled(true);
webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
webSettings.setUseWideViewPort(true);
webSettings.setLoadWithOverviewMode(true);
webSettings.setPluginState(WebSettings.PluginState.ON_DEMAND);
webView.setWebChromeClient(new WebChromeClient());
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
new ParseURl().execute(new …Run Code Online (Sandbox Code Playgroud) 当我调用webView.findAll(word);它确实显示所有出现的选项并webView.findNext(true)显示不同的背景颜色,但它不会将页面滚动到下一个选定的单词.
我必须手动滚动页面才能看到所选单词.我希望,每当我调用webView.findNext(true)它时,应自动滚动页面到下一个单词.我使用的是Android 6.0设备.我也尝试过webView.findAllAsync(word);.但是我无法将webView页面滚动到所选单词.请帮忙!
编辑:
布局文件:
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/white" >
<WebView android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/tv_for_dummies"
android:textColor="@android:color/black"
android:padding="7dp"/>
</ScrollView>
Run Code Online (Sandbox Code Playgroud)
menu.xml文件
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:appcompat="http://schemas.android.com/apk/res-auto"
xmlns:app="http://schemas.android.com/tools" >
<item
android:id="@+id/search"
android:icon="@android:drawable/ic_menu_search"
android:title="Search"
appcompat:actionViewClass="android.support.v7.widget.SearchView"
appcompat:showAsAction="ifRoom|collapseActionView"/>
<item
android:id="@+id/next"
android:icon="@android:drawable/arrow_down_float"
android:title="Next"
android:visible="false"
appcompat:showAsAction="always"/>
<item
android:id="@+id/prev"
android:icon="@android:drawable/arrow_up_float"
android:title="Previous"
android:visible="false"
appcompat:showAsAction="always"/>
</menu>
Run Code Online (Sandbox Code Playgroud)
DummiesActivity.java文件
public class DummiesActivity extends AppCompatActivity {
WebView wvDummies;
Context context;
Float scale = 0.5F;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
context = this;
setContentView(R.layout.dummies_guide);
wvDummies = …Run Code Online (Sandbox Code Playgroud) 当我在 Webview (android) 中长按文本时,应用程序崩溃。我也无法选择文本,因为它在突出显示文本之前崩溃。我认为,通常情况下,应用程序会显示默认的上下文操作栏,对吗?
可能会发生什么?谢谢。
更新:这是日志:
块引用
09-15 23:35:21.680 26033-26033/com.edireito.digimecum.dgpro W/ActivityThread?应用程序 com.edireito.digimecum.dgpro 正在等待端口 8100 上的调试器...
09-15 23:35:21.681 26033-26033/com.edireito.digimecum.dgpro I/System.out?发送等待块
09-15 23:35:21.771 26033-26043/com.edireito.digimecum.dgpro I/art? 调试器处于活动状态
09-15 23:35:21.910 26033-26033/com.edireito.digimecum.dgpro I/System.out?调试器已连接
09-15 23:35:21.910 26033-26033/com.edireito.digimecum.dgpro I/System.out?等待调试器解决...
09-15 23:35:22.111 26033-26033/com.edireito.digimecum.dgpro I/System.out?等待调试器解决...
09-15 23:35:22.312 26033-26033/com.edireito.digimecum.dgpro I/System.out?等待调试器解决...
09-15 23:35:22.512 26033-26033/com.edireito.digimecum.dgpro I/System.out?等待调试器解决...
09-15 23:35:22.714 26033-26033/com.edireito.digimecum.dgpro I/System.out?等待调试器解决...
09-15 23:35:22.915 26033-26033/com.edireito.digimecum.dgpro I/System.out?等待调试器解决...
09-15 23:35:23.116 26033-26033/com.edireito.digimecum.dgpro I/System.out?等待调试器解决...
09-15 23:35:23.318 26033-26033/com.edireito.digimecum.dgpro I/System.out?调试器已解决 (1383)
09-15 23:35:23.868 26033-26033/com.edireito.digimecum.dgpro I/LibraryLoader?预期本机库版本号“”,实际本机库版本号“”
09-15 23:35:23.869 26033-26033/com.edireito.digimecum.dgpro I/铬?[信息:library_loader_hooks.cc(116)] 启用 Chromium 日志记录:级别 = 0,默认详细级别 = 0
09-15 23:35:23.952 26033-26033/com.edireito.digimecum.dgpro I/BrowserStartupController?初始化铬进程,渲染器=0 …
我有一个HTML5网页,我想使用webview for Android DSK.
这是我的androidmanifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.myfirstapp"
android:versionCode="1"
android:versionName="1.0" >
<uses-permission android:name="android.permission.INTERNET" />
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.myfirstapp.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Run Code Online (Sandbox Code Playgroud)
这是我在布局文件夹上的activitymain.xml:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://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:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:text="@string/hello_world" />
<WebView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/webview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
我还该怎么办?那个代码放在哪里?
谷歌android文档说这个:
要在WebView中加载网页,请使用loadUrl().例如:
WebView myWebView = (WebView) findViewById(R.id.webview);
myWebView.loadUrl("http://www.example.com");
Run Code Online (Sandbox Code Playgroud)
但是我应该在哪里放置这些代码?在新文件中?我尝试了很多没有成功的事情.
webview ×13
android ×8
ios ×2
swift ×2
xcode ×2
ajax ×1
button ×1
cordova ×1
css ×1
flutter ×1
flutter-showmodalbottomsheet ×1
fonts ×1
javascript ×1
navigation ×1
orientation ×1
react-native ×1
select ×1
text ×1
xctest ×1