Articles of webview

在加载之前,React-native android WebView句柄单击了Url

嗨,我有以下情况: 我正在反应原生中通过WebView显示一个网站。 在本网站上有一个PassWallet(.pkpass)文件的链接(不是唯一的用例)。 当我点击本网站上的任何链接时,我想检查它是否是其他网站或.pkpass文件或其他什么。 当这个检查正在运行时,我不想加载任何东西,只要等到我的function完成,我就知道是否应该打开一个网站或打开另一个应用程序或其他什么。 我想在JavaScript方面做这个,因为我的整个路由function都存在,在我看来本机是为这种情况构建的本机:-) 在iOS上有一个漂亮的函数onShouldStartLoadWithRequest ,它完全符合我的需要。 _onShouldStartLoadWithRequest(e) { if(checkUrl(e.url)) { let Router = this.props.navigator.props.router; let route = Router.getRouteFromUrl(e.url); this.props.navigator.push(route); return false; } return true; } 我正在收到事件(e)并且可以检查它正在尝试加载的URL。 我甚至可以用e.navigationType检查它是否是点击或其他什么。 现在在Android上这个function不存在。 在本机端有函数shouldOverrideUrlLoading但是此函数未在react-native中实现。 我发现以下GitHub问题/ PR https://github.com/facebook/react-native/pull/6478我现在想,因为这个问题已经关闭,因此有解释,这个function没有得到实现。 所以我开始自己find一种方法。 我创建了一个Native UI Component,它显示了一个WebView,然后实现了这个方法。 CustomWebViewManager.java: package ch.mypackage; import android.support.annotation.Nullable; import android.webkit.WebView; import com.facebook.react.uimanager.SimpleViewManager; import com.facebook.react.uimanager.ThemedReactContext; import com.facebook.react.uimanager.annotations.ReactProp; public class CustomWebViewManager extends […]

Android WebView err_unknown_url_scheme

使用下面的简单代码我可以正确加载我的url,但是,当我尝试点击以mailto: whatsapp:和tg: (Telegram)开头的html链接时,我得到“ERR_UNKNOWN_URL_SCHEME”。 有人可以帮我解决这个问题吗? 不幸的是我根本不懂Java 🙁 谢谢。 import android.app.Activity; import android.os.Bundle; import android.webkit.WebSettings; import android.webkit.WebView; import android.webkit.WebViewClient; public class MainActivity extends Activity { private WebView mWebView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mWebView = (WebView) findViewById(R.id.activity_main_webview); // Force links and redirects to open in the WebView instead of in a browser mWebView.setWebViewClient(new WebViewClient()); […]

Webview文本选择不清除

我已经在WebView为自定义文本选择函数实现了ActionMode.Callback 。 我遇到的问题是选择和操作模式状态不匹配。 当我长按时,一切都开始了。 当我与其中一个按钮或WebView (不包括实际选择)进行ActionMode应该销毁ActionMode ,并且选择应该消失。 在Android 4.4,KitKat中,这正是发生的事情。 然而,这不是4.1.1 – 4.3,Jelly Bean中发生的情况。 单击其中一个按钮时,不会删除选择。 当我在选择之外点击时,恰好相反。 选择被删除,但上下文操作栏仍保留在屏幕上。 <img src="http://img.androidcookie.com/android/fPlrTm.jpg" alt="选择开始后点击 WebView 。”> 这是我的CustomWebView的代码 public class CustomWebView extends WebView { private ActionMode.Callback mActionModeCallback; @Override public ActionMode startActionMode(Callback callback) { ViewParent parent = getParent(); if (parent == null) { return null; } mActionModeCallback = new CustomActionModeCallback(); return parent.startActionModeForChild(this, […]

启用放大WebView android

我无法在Android中的WebView上启用缩放钳 我是编程新手,已经尝试了一切,无法解决问题。 在这里新,我无法附加图像。 WebViewActivity.java package com.mkyong.android; import android.app.Activity; import android.os.Bundle; import android.webkit.WebView; import android.webkit.WebViewClient; public class WebViewActivity extends Activity { private WebView webView; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.webview); webView = (WebView) findViewById(R.id.webView1); webView.getSettings().setBuiltInZoomControls(true); webSettings.setSupportZoom(true); webView.getSettings().setLoadWithOverviewMode(true); webView.getSettings().setUseWideViewPort(true); webView.getSettings().setJavaScriptEnabled(true); webView.loadUrl(“http://200.99.150.163/sacsptrans/hrecinicial.aspx”); webView.setWebViewClient(new WebViewClient() { // prevent open in external browser @Override public boolean shouldOverrideUrlLoading(WebView view, String […]

Android CustomWebChromeClient openFileChooser在上传之前调整图像大小

我使用Webview获得了一个很好的页面,我需要上传图像。 现在问题是,手机上的大多数图像都是2-3MB,我需要在上传开始之前调整图像大小并降低质量。 那么我怎样才能使用stackoverflow上的示例代码调整它的大小呢? 这段代码打开了Filechooser: //Android 3.0 public void openFileChooser(ValueCallback uploadMsg) { mUploadMessage = uploadMsg; Intent i = new Intent(Intent.ACTION_GET_CONTENT); i.addCategory(Intent.CATEGORY_OPENABLE); i.setType(“image/*”); startActivityForResult( Intent.createChooser(i, “Image Browser”), FILECHOOSER_RESULTCODE ); } 现在我需要一些resize并制作副本并上传resize。 (我知道如何创建一个resize的副本,但不知道如何与上面的代码进行交互)

Android Webview页面未正确加载页面

我正在尝试使用Android Studio模拟器(Nexus 5)将页面加载到Android应用程序webview中。 但是,页面未正确加载并卡在加载屏幕上。 该页面确实需要GeoLocation权限,但我已经启用了它们。 下面是我的代码和应用程​​序的XML。 MainActivity.java @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); WebView webview; setContentView(R.layout.activity_main); webview = (WebView)findViewById(R.id.help_webview); //webview use to call own site webview.setWebViewClient(new WebViewClient()); webview.getSettings().setJavaScriptEnabled(true); webview.getSettings().setDomStorageEnabled(true); webview.getSettings().setAllowContentAccess(true); webview.getSettings().setAllowFileAccess(true); webview.getSettings().setAppCacheEnabled(true); webview.getSettings().setAllowUniversalAccessFromFileURLs(true); webview.getSettings().setAllowContentAccess(true); webview.getSettings().setGeolocationEnabled(true); webview.getSettings().setDatabaseEnabled(true); webview.setWebChromeClient(new WebChromeClient() { public void onGeolocationPermissionsShowPrompt(String origin, GeolocationPermissions.Callback callback) { // callback.invoke(String origin, boolean allow, boolean remember); callback.invoke(origin, […]

使用JavaScript界面​​的Webview

我正在构建一个应该从java到javascript交互的移动应用程序。 我在此链接中find了解决方案在WebView中将Android Activity中的值数组传递给JavaScript 。 但我的问题是当我宣布webview显示错误时 添加的接口中的所有方法都没有使用@ android.webkit.JavascriptInterface注释; 它们在API 17中不可见 我该怎么做才能消除这个错误? 我对这个核心java很新。 请建议我帮我解决这个问题。

android web视图中的baseUrl是什么?

在Android WebView的loadDataWithBaseURL方法中,有“baseUrl”和“historyUrl”。 它们用于什么? 我已经阅读了android文档,但仍然不知道它们是什么。

像Gmail应用程序一样处理android WebView中的外部链接

我是一名网络开发人员。 我目前正在使用WebView在Android Studio上开发Android应用程序,它将我的网站作为Android应用程序访问。 我的一个网页包含许多外部链接。 我的目标是使Android应用程序可以处理像Gmail应用程序那样的外部链接(也像facebook和Line do)。 以下是gmail应用程序的示例。 电子邮件包含外部链接 链接点击,然后应用程序打开一个新的活动就像一个浏览器,而不离开Gmail应用程序 知道怎么做吗?

Android webview loadurl(“file:///android_asset/index.html#home”)失败

我正在使用Android中的应用程序,我想在其中加载本地html文件 webview.loadurl(“file:///android_asset/index.html#home”); 它将在大多数设备上加载正常,但在某些配备Android OS 4.0.4的三星设备上,加载失败。 你有这个问题的想法吗? 添加一些评论,对不起我的错误。 webview.loadurl(“file:///android_asset/www/index.html”); 工作得很好,但是 webview.loadurl(“file:///android_asset/www/index.html#home”); 失败了。