Articles of webview

Android:使用WebView播放资产声音

我尝试从用户点击应用程序的WebView上的标记时从资源文件夹播放声音。 我发现我可以使用一个扩展WebViewClient的新类来检测链接的扩展,如果它是一个mp3文件,它可以通过默认的audio播放器播放它。 但是我希望它能在活动中发挥作用,而不必开始新的活动。 我使用了以下链接作为参考: Webview中的声音和使用Uri或资产中的文件创buildMediaPlayer时出错 但它没有工作。 我试着用下面的代码来做到这一点: package com.rangga.test.webview.sound; import android.content.Intent; import android.content.res.AssetFileDescriptor; import android.media.MediaPlayer; import android.net.Uri; import android.webkit.WebView; import android.webkit.WebViewClient; public class MyWebViewClient extends WebViewClient{ public MediaPlayer mp; @Override public boolean shouldOverrideUrlLoading(WebView view, String url){ if(url.endsWith(".mp3")){ mp = new MediaPlayer(); AssetFileDescriptor afd = getAssets().openFd(url); mp.setDataSource(afd.getFileDescriptor()); mp.start(); return true; }else{ return true; } } } […]

如何允许从离子webview复制和粘贴?

我正在使用离子和cordova来build立一个混合应用程序。 不过,我无法复制我的任何网页浏览的文字。 从我的Android手机或浏览器中,复制文本不起作用。 select文本并拖动指针不起作用。 这发生在ionic start myApp tabs生成的基本应用程序的情况下。 简单地说,我怎样才能让用户复制粘贴?

WebView摆脱双击缩放。

我读了很多关于放大WebViews的话题,没有find答案。 这是我的设置: 我通常使用这些设置的自定义网页视图: getSettings().setBuiltInZoomControls(false); getSettings().setSupportZoom(false); getSettings().setUseWideViewPort(true); getSettings().setLoadWithOverviewMode(true); 让我在这里注意,我依靠OverviewMode,以及在WideViewPort以扩展我的WebView。 我也覆盖我的OnTouchEvent,并委托所有合适的事件到手势检测器: @Override public boolean onTouchEvent(MotionEvent event) { if (gestureDetector.onTouchEvent(event)) return true; return super.onTouchEvent(event); } 这里是它的侦听器实现拦截所有doubleTap事件: @Override public boolean onDoubleTapEvent(MotionEvent e) { // Do nothing! return true; } @Override public boolean onDoubleTap(MotionEvent e) { // Do nothing! return true; } @Override public boolean onSingleTapConfirmed(MotionEvent e) { // Do […]

如何让webview在Android 4中进行缩放

WebView.getScale()已被弃用(但仍然可用) 推荐的方法来获取规模的webview是使用WebViewClient.onScaleChanged() http://developer.android.com/reference/android/webkit/WebViewClient.html#onScaleChanged (android.webkit.WebView,float,float) 我在自定义webview中添加了相应的处理程序: public class CustomWebView extends WebView { public CustomWebView(Context context) { super(context); setWebViewClient(new WebViewClient() { @Override public void onScaleChanged(WebView view, float oldScale, float newScale) { super.onScaleChanged(view, oldScale, newScale); currentScale = newScale } }); } 现在的问题是:如果我使用夹点放大/缩小,则不会调用该方法(至less在我的连接点7上),所以只有使用缩放控件button时才能正常工作。

添加WebViewClient时,Android WebView忽略target =“_ blank”

我正面临着一个奇怪的问题。 在我的应用程序中,我需要加载一个静态HTML文件,基于WebView从资产文件夹中单击button。 现在在5个html文件中,一个html文件包含15个静态链接。 这些链接需要将用户redirect到移动浏览器中提到的url。 我在我的html文件中使用了target="_blank" 。 <div class="lid"><a href="https://www.irctc.co.in/" target="_blank">Railway Reservation </a></div> 现在,在没有任何WebViewClient添加到WebView的示例应用程序中,这可以正常工作。 但是我需要一个WebViewClient来处理其他的function。 那么当时target="_blank"完全被忽略了。 url在WebView中打开。 我发现一个解决方法,我可以使用shouldOverrideUrlLoading如下: myWebView.setWebViewClient(new WebViewClient(){ public boolean shouldOverrideUrlLoading(WebView view, String url) { // TODO Auto-generated method stub if(url.equalsIgnoreCase("https://www.irctc.co.in/")) { view.getContext().startActivity( new Intent(Intent.ACTION_VIEW, Uri.parse(url))); return true; } else return super.shouldOverrideUrlLoading(view, url); } }); 所以这是在默认浏览器中打开特定的url。 所以基本上我的问题是: 为什么在我们使用WebViewClient忽略target="_blank" ? 那么这个问题还有其他解决方法吗? 因为我有15个链接,我需要比较。 我无法在新浏览器中加载所有url,因为有几个链接需要在同一个WebView中打开。

AdView减慢整个应用程序,可能的原因

屏幕下方有WebView + ListView和AdView。 在AdView加载之前,WebView或者ListView在较老的设备(4.0-4.3 Android)上工作可怕,但是工作非常顺利。 Logcat显示,AdMob尝试加载一些经常无法成功的东西,直到成功,然后应用顺利。 可能是一个原因吗? 如何解决它? 10-10 01:02:20.954 7160-7214/com.test.test V/webcore﹕ webkitDraw NEW_PICTURE_MSG_ID 10-10 01:02:20.964 7160-7214/com.test.test V/webcore﹕ WEBKIT_DRAW arg1=0 arg2=0 obj=null 10-10 01:02:20.974 7160-7214/com.test.test V/webcore﹕ webkitDraw start 10-10 01:02:20.974 7160-7214/com.test.test V/webcore﹕ webkitDraw NEW_PICTURE_MSG_ID 10-10 01:02:21.004 7160-7160/com.test.test V/webview﹕ NEW_PICTURE_MSG_ID 10-10 01:02:21.004 7160-7160/com.test.test V/webview﹕ NEW_PICTURE_MSG_ID 10-10 01:02:21.004 7160-7214/com.test.test V/webcore﹕ WEBKIT_DRAW arg1=0 arg2=0 obj=null 10-10 01:02:21.004 7160-7214/com.test.test […]

webview页面内的Framework7不加载

我是新来的framework7,我试图让它在android的内部工作。 这是我做的,在android studio中创build项目,使用webview加载index.html,它的工作原理。 但是,关于“关于”,“服务”和“forms”的链接不起作用。 我看到了framework7使用ajax来调用这些页面。 所以我认为它不能在webview中正确的方式吗? 我需要改变的方式framework7初始化使用JavaScript或什么加载页面? 有可能使它以这种方式工作? 加载另一个HTML文件的内容为页面,而不是使用“内联”页面? 一些忠告? 更新我的代码(使用android studio): activity_main.xml中: <?xml version="1.0" encoding="utf-8"?> <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="atlasdb.atlasdatabase.MainActivity"> <WebView android:id="@+id/atlasdatabase" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" /> </RelativeLayout> MainActivity.java: package app.apptest; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.webkit.WebSettings; import android.webkit.WebView; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); […]

JavaScript有时在android的webview中不起作用

我在我的应用程序中放置了一个webview来访问一个包含一些javascript函数的网页,我的目的是当用户点击网页中的一个链接时,它会在应用程序中启动一个新的活动。 我写了“webSettings.setJavaScriptEnabled(true);” 在我的源代码。 它在大多数时间都能正常工作,但是有时不起作用,用户点击时没有响应,我不知道为什么,因为环境根本没有改变。 有谁知道为什么?

android webview键盘长时间不显示input值

我有一个内置WebView的Android 3.0应用程序。 webview打开一个使用java脚本的网站。 打开网站正常工作。 但是每当我点击一个TextField,键盘就不会出现。 我已经尝试过: 在WebView中点击表单字段不显示软键盘 但没有成功。 键盘似乎很快就会出现,然后消失。 从我的angular度来看,这是由一些JavaScript引起的。 这是其中一个input字段的html: <input id="ToolbarOkCode" class="urEdf2TxtEnbl" type="Text" style="text-align:;width:150px;" value="" name="ToolbarOkCode" lsevents="{'Change':[{'ClientAction':'none'},{'type':'TOOLBARINPUTFIELD'}],'Enter':[{'ClientAction':'submit','PrepareScript':'return its.XControlSubmit();','ResponseData':'delta','TransportMethod':'partial'},{'type':'TOOLBARINPUTFIELD','~XRequest':'X'}]}" lsdata="{0:'',1:'',2:'',3:20,4:200,5:false,6:false,7:true,8:false,9:false,10:'STRING',11:'F4LOOKUP',12:'150px',13:'LEFT',14:false,15:'',16:false,17:false,18:false,19:'AUTO',20:true,21:'NONE',22:'MM/dd/yyyy',23:false,24:'',25:'',26:false,27:false,28:'',29:'NORMAL',30:1,31:false,32:0,33:0}" ct="I" autocomplete="off" ti="0" tabindex="0" maxlength="200">

HTC One X – Webview在触摸后变为白色/空白

我有一个Android应用程序,其中包含search文本框,一些button,webviews(1可见2不可见)和admob adview。 该应用程序只是在一些特殊的网站上search,它在仿真器,三星Galaxy设备上效果很好。 但我有问题与HTC One X(不知道其他HTC型号)。 问题是,当你点击一个searchbutton时,webview加载页面。 然后“有时”,当你尝试触摸甚至滚动,webview只是返回到完全白色的区域与滚动条。 这在广告刷新之后尤其会发生。 即使有时候,广告的背景和文字区域也会变成白色,因此也不可读。 在广告只是蓝色的箭头和蓝色的电话图像保持可见! 有没有人有这样的问题,和任何解决scheme? 提前致谢。 这里是我的布局xml: <?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#ffffff" android:orientation="vertical" > <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <LinearLayout android:id="@+id/layoutDashboard" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:background="@drawable/border_shape" android:orientation="vertical" android:paddingTop="1sp" > <EditText android:id="@+id/editxtKeyword" android:layout_width="fill_parent" android:layout_height="43dp" android:layout_marginLeft="1dp" android:layout_marginRight="1dp" android:layout_marginTop="2dp" android:ems="10" android:hint="@string/editxtKeyword_hint" android:singleLine="true" > </EditText> <HorizontalScrollView android:id="@+id/horizontalScrollView1" […]