public boolean onJsConfirm( WebView paramWebView, String paramString1, String paramString2, final JsResult paramJsResult) { paramWebView = new AlertDialog.Builder(cordova.getActivity()); paramWebView.setMessage(paramString2); paramWebView.setTitle("Confirm"); paramWebView.setCancelable(true); paramWebView.setPositiveButton( 17039370, new DialogInterface.OnClickListener() { public void onClick( DialogInterface paramAnonymousDialogInterface, int paramAnonymousInt) { paramJsResult.confirm(); } }); paramWebView.setNegativeButton( 17039360, new DialogInterface.OnClickListener() { public void onClick( DialogInterface paramAnonymousDialogInterface, int paramAnonymousInt) { paramJsResult.cancel(); } }); paramWebView.setOnCancelListener( new DialogInterface.OnCancelListener() { public void onCancel(DialogInterface paramAnonymousDialogInterface) { paramJsResult.cancel(); } }); paramWebView.setOnKeyListener( new DialogInterface.OnKeyListener() { public boolean onKey( DialogInterface paramAnonymousDialogInterface, int paramAnonymousInt, KeyEvent paramAnonymousKeyEvent) { if (paramAnonymousInt == 4) { paramJsResult.cancel(); return false; } return true; } }); paramWebView.show(); return true; }
@Override public void initView() { webView.getSettings().setJavaScriptEnabled(true); webView.getSettings().setSupportZoom(true); webView.getSettings().setBuiltInZoomControls(false); // 出现横向滚动条,把所有内容放到webview组件等宽的一列中 webView.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN); webView.setWebViewClient( new WebViewClient() { // 点击链接覆盖而不是打开新的窗口 @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } }); // 监听回退键 webView.setOnKeyListener( new View.OnKeyListener() { @Override public boolean onKey(View view, int keyCode, KeyEvent event) { if (event.getAction() == KeyEvent.ACTION_DOWN) { if (keyCode == KeyEvent.KEYCODE_BACK && webView.canGoBack()) { webView.goBack(); return true; // 已处理 } } return false; } }); webView.setWebChromeClient( new WebChromeClient() { @Override public void onProgressChanged(WebView view, int newProgress) { // 更新窗口进度,Activity的进度范围在0到10000之间,所以乘以100 MJPersonalInfo.this.setProgress(newProgress * 100); } }); webView.loadUrl( "http://baike.baidu.com/link?url=hq0eopWJyK3jHTj8iFORhUdaGKmX1tfLzArgVyXGI1fI" + "50kBrKwOCKm1RA8btK9AhAKP4Ds_PJVaGxx0YI3Y2nwLD49CrnDxFaBFDMhOIuN05fj92CRVwpyxn6fxbaH" + "VymBDIVxvIPKTv5fu1OlsNK"); webView.requestFocus(); }
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.web_main); showWV = (WebView) findViewById(R.id.showWV); dialog = new LoadingDialog(WebActivity.this); dialog.show(); Intent inget = this.getIntent(); url = inget.getStringExtra("url"); showWV.loadUrl(url); showWV.getSettings().setJavaScriptEnabled(true); showWV.requestFocus(); showWV.setWebViewClient( new WebViewClient() { public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } }); showWV.setWebChromeClient( new WebChromeClient() { public void onProgressChanged(WebView view, int newProgress) { if (newProgress == 100) { // 这里是设置activity的标题, dialog.dismiss(); } } }); showWV.setOnKeyListener( new View.OnKeyListener() { public boolean onKey(View v, int keyCode, KeyEvent event) { if (event.getAction() == KeyEvent.ACTION_DOWN) { if (keyCode == KeyEvent.KEYCODE_BACK && showWV.canGoBack()) { // 表示按返回键 时的操作 showWV.goBack(); // 后退 // webview.goForward();//前进 return true; // 已处理 } } return false; } }); }
@SuppressLint({"InflateParams", "SetJavaScriptEnabled"}) @Override public View onCreateView( LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { view = inflater.inflate(R.layout.frag_home, null); webview = (WebView) view.findViewById(R.id.webView1_home); cookies = new ArrayList<Cookie>(); WebSettings ws = webview.getSettings(); ws.setJavaScriptEnabled(true); ws.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK); ws.setSupportZoom(true); ws.setBuiltInZoomControls(true); ws.setUseWideViewPort(true); ws.setLoadWithOverviewMode(true); // ws.setLayoutAlgorithm(LayoutAlgorithm.NARROW_COLUMNS); webview.setWebViewClient( new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } }); webview.setOnKeyListener( new OnKeyListener() { @Override public boolean onKey(View arg0, int arg1, KeyEvent arg2) { if ((arg1 == KeyEvent.KEYCODE_BACK) && webview.canGoBack()) { webview.goBack(); return true; } return false; } }); setCookie(getActivity().getApplicationContext()); webview.loadUrl(devbaseURL + "?app-default"); return view; }
private void initWebView() { // try { // System.out.println("yzj " + TuringUtils.decodeUnicode(wordApi("好"))); // } catch (JSONException e) { // // TODO Auto-generated catch block // e.printStackTrace(); // } myWebView = (WebView) findViewById(R.id.webview); myWebView.setInitialScale(200); // 为25%,最小缩放等级 // myWebView.setBackgroundColor(Color.argb(232, 0, 0, 0)); WebSettings webSettings = myWebView.getSettings(); webSettings.setJavaScriptEnabled(true); webSettings.setSupportZoom(true); myWebView.setWebViewClient(new WebViewClient()); myWebView.setOnKeyListener( new OnKeyListener() { @Override public boolean onKey(View arg0, int keyCode, KeyEvent event) { if ((keyCode == KeyEvent.KEYCODE_BACK) && myWebView.canGoBack()) { myWebView.goBack(); return true; } return false; } }); myWebView.setWebViewClient( new WebViewClient() { @Override public void onPageFinished(WebView view, String url) { // TODO Auto-generated method stub super.onPageFinished(view, url); System.out.println("yzj ax onPageFinished = "); if (myWebView.getScrollX() != 215 && myWebView.getScrollY() != 160) { myWebView.scrollTo(215, 160); } } }); SharedPreferences sp = tempContext.getSharedPreferences("SP", Context.MODE_PRIVATE); lastUrl = sp.getString("lastUrl", "http://www.baidu.com"); myWebView.loadUrl(lastUrl); }
private void initWebView() { mSettings = webView.getSettings(); mSettings.setSupportZoom(true); // 支持缩放 mSettings.setBuiltInZoomControls(true); // 启用内置缩放装置 // mSettings.setJavaScriptEnabled(true); // 启用JS脚本 // 当点击链接时,希望覆盖而不是打开新窗口 webView.setWebViewClient( new WebViewClient() { public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); // 加载新的url return true; // 返回true,代表事件已处理,事件流到此终止 }; }); // 点击后退按钮,让WebView后退一页(也可以覆写Activity的onKeyDown方法) webView.setOnKeyListener( new View.OnKeyListener() { @Override public boolean onKey(View v, int keyCode, KeyEvent event) { if (event.getAction() == KeyEvent.ACTION_DOWN) { if (keyCode == KeyEvent.KEYCODE_BACK && webView.canGoBack()) { webView.goBack(); // 后退 return true; // 已处理 } } return false; } }); webView.setWebChromeClient( new WebChromeClient() { // 当WebView进度改变时更新窗口进度 @Override public void onProgressChanged(WebView view, int newProgress) { // Activity的进度范围在0到10000之间,所以这里要乘以100 setProgress(newProgress * 100); } }); webView.loadUrl(url); // 加载url webView.requestFocus(); // 获取焦点 }
@SuppressLint("JavascriptInterface") public void showWebView() { // webView与js交互代码 try { mWebView = new WebView(this); setContentView(mWebView); mWebView.requestFocus(); mWebView.setWebChromeClient( new WebChromeClient() { @Override public void onProgressChanged(WebView view, int progress) { JSAndroidActivity.this.setTitle("Loading..."); JSAndroidActivity.this.setProgress(progress); if (progress >= 80) { JSAndroidActivity.this.setTitle("JsAndroid Test"); } } }); mWebView.setOnKeyListener( (v, keyCode, event) -> { if (keyCode == KeyEvent.KEYCODE_BACK && mWebView.canGoBack()) { mWebView.goBack(); return true; } return false; }); WebSettings webSettings = mWebView.getSettings(); webSettings.setJavaScriptEnabled(true); webSettings.setDefaultTextEncodingName("utf-8"); mWebView.addJavascriptInterface(this, "android"); mWebView.loadUrl("file:///android_asset/index.html"); } catch (Exception e) { e.printStackTrace(); } }
private void updateWebView() { mWebView.setWebChromeClient( new WebChromeClient() { public void onProgressChanged(WebView view, int progress) { setValue(progress); super.onProgressChanged(view, progress); } }); mWebView.setWebViewClient( new WebViewClient() { public void onReceivedError( WebView view, int errorCode, String description, String failingUrl) { Toast.makeText(TermAndConditionActivity.this, description, Toast.LENGTH_SHORT).show(); } @Override public void onPageFinished(WebView view, String url) { super.onPageFinished(view, url); } }); mWebView.loadUrl(initilaPageUrl); mWebView.setOnKeyListener( new View.OnKeyListener() { public boolean onKey(View v, int keyCode, KeyEvent event) { if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) { if (mWebView.canGoBack()) { mWebView.goBack(); } return true; } return false; } }); }
private void renderView() { // reference final WebView webView = (WebView) mRootView.findViewById(R.id.fragment_main_webview); final AdView adView = (AdView) mRootView.findViewById(R.id.fragment_main_adview); // webview settings webView.getSettings().setBuiltInZoomControls(false); webView.getSettings().setSupportZoom(true); webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE); webView.getSettings().setJavaScriptEnabled(true); webView.setBackgroundColor(getResources().getColor(R.color.global_bg_front)); webView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY); // fixes scrollbar on Froyo webView.setWebChromeClient( new WebChromeClient() { public void openFileChooser(ValueCallback<Uri> filePathCallback) { mFilePathCallback4 = filePathCallback; Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.addCategory(Intent.CATEGORY_OPENABLE); intent.setType("*/*"); startActivityForResult( Intent.createChooser(intent, "File Chooser"), REQUEST_FILE_PICKER); } public void openFileChooser(ValueCallback filePathCallback, String acceptType) { mFilePathCallback4 = filePathCallback; Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.addCategory(Intent.CATEGORY_OPENABLE); intent.setType("*/*"); startActivityForResult( Intent.createChooser(intent, "File Chooser"), REQUEST_FILE_PICKER); } public void openFileChooser( ValueCallback<Uri> filePathCallback, String acceptType, String capture) { mFilePathCallback4 = filePathCallback; Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.addCategory(Intent.CATEGORY_OPENABLE); intent.setType("*/*"); startActivityForResult( Intent.createChooser(intent, "File Chooser"), REQUEST_FILE_PICKER); } @Override public boolean onShowFileChooser( WebView webView, ValueCallback<Uri[]> filePathCallback, WebChromeClient.FileChooserParams fileChooserParams) { mFilePathCallback5 = filePathCallback; Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.addCategory(Intent.CATEGORY_OPENABLE); intent.setType("*/*"); startActivityForResult( Intent.createChooser(intent, "File Chooser"), REQUEST_FILE_PICKER); return true; } }); webView.setWebViewClient( new WebViewClient() { private boolean mSuccess = true; @Override public void onPageFinished(final WebView view, final String url) { runTaskCallback( new Runnable() { public void run() { if (getActivity() != null && mSuccess) { showContent( 500); // hide progress bar with delay to show webview content smoothly showActionBarProgress(false); } } }); } @Override public void onReceivedError( final WebView view, final int errorCode, final String description, final String failingUrl) { runTaskCallback( new Runnable() { public void run() { if (getActivity() != null) { mSuccess = false; showEmpty(); showActionBarProgress(false); } } }); } @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { if (DownloadUtility.isDownloadableFile(url)) { Toast.makeText(getActivity(), R.string.fragment_main_downloading, Toast.LENGTH_LONG) .show(); DownloadUtility.downloadFile(getActivity(), url, DownloadUtility.getFileName(url)); return true; } else if (url != null && (url.startsWith("http://") || url.startsWith("https://"))) { // determine for opening the link externally or internally boolean external = isLinkExternal(url); boolean internal = isLinkInternal(url); if (!external && !internal) { external = WebViewAppConfig.OPEN_LINKS_IN_EXTERNAL_BROWSER; } // open the link if (external) { startWebActivity(url); return true; } else { showActionBarProgress(true); return false; } } else if (url != null && url.startsWith("mailto:")) { MailTo mailTo = MailTo.parse(url); startEmailActivity(mailTo.getTo(), mailTo.getSubject(), mailTo.getBody()); return true; } else if (url != null && url.startsWith("tel:")) { startCallActivity(url); return true; } else if (url != null && url.startsWith("sms:")) { startSmsActivity(url); return true; } else if (url != null && url.startsWith("geo:")) { startMapSearchActivity(url); return true; } else { return false; } } }); webView.setOnKeyListener( new View.OnKeyListener() { @Override public boolean onKey(View v, int keyCode, KeyEvent event) { if (event.getAction() == KeyEvent.ACTION_DOWN) { WebView webView = (WebView) v; switch (keyCode) { case KeyEvent.KEYCODE_BACK: if (webView.canGoBack()) { webView.goBack(); return true; } break; } } return false; } }); webView.requestFocus( View .FOCUS_DOWN); // http://android24hours.blogspot.cz/2011/12/android-soft-keyboard-not-showing-on.html webView.setOnTouchListener( new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: case MotionEvent.ACTION_UP: if (!v.hasFocus()) { v.requestFocus(); } break; } return false; } }); // admob if (WebViewAppConfig.ADMOB && NetworkManager.isOnline(getActivity())) { AdRequest adRequest = new AdRequest.Builder() .addTestDevice(AdRequest.DEVICE_ID_EMULATOR) .addTestDevice(getString(R.string.admob_test_device_id)) .build(); adView.loadAd(adRequest); adView.setVisibility(View.VISIBLE); } else { adView.setVisibility(View.GONE); } }
@Override public View onCreateView( LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { final View c = inflater.inflate( R.layout.lay_talleres, container, false); // Se relaciona el View con su respectivo XML setRetainInstance(true); // Genera que no se afecte el fragmento en los cambios de configuracion final ProgressDialog dialog = ProgressDialog.show( getActivity(), "", "Please wait, Loading Page...", true); // Se crea el ProgressDialog final Timer t = new Timer(); // Se crea el timer myWebView = (WebView) c.findViewById(R.id.webview); // Se relaciona myWebView con webview del XML myWebView.loadUrl( "https://www.google.com/calendar/htmlembed?src=ndo8qlb1snenh41blag9slaav8%40group.calendar.google.com"); // url que carga el myWebView myWebView .getSettings() .setUseWideViewPort( true); // Sets whether the WebView should enable support for the "viewport" HTML meta // tag or should use a wide viewport. myWebView .getSettings() .setLoadWithOverviewMode( true); // Sets whether the WebView loads pages in overview mode, that is, zooms out the // content to fit on screen by width. This setting is taken into account when the // content width is greater than the width of the WebView control, for example, // when getUseWideViewPort() is enabled. The default is false myWebView .getSettings() .setBuiltInZoomControls( true); // Sets whether the WebView should use its built-in zoom mechanisms. The built-in // zoom mechanisms comprise on-screen zoom controls, which are displayed over the // WebView's content, and the use of a pinch gesture to control zooming myWebView .getSettings() .setSupportZoom( true); // Sets whether the WebView should support zooming using its on-screen zoom // controls and gestures. myWebView.getSettings().setJavaScriptEnabled(true); // Activa java script en el webView myWebView .getSettings() .setDisplayZoomControls( false); // Sets whether the WebView should display on-screen zoom controls when using // the built-in zoom mechanisms. myWebView .getSettings() .setDomStorageEnabled(true); // Sets whether the DOM storage API is enabled. myWebView .getSettings() .setAppCachePath( "/data/data/pe.edu.esan.appesan2/cache"); // Sets the path to the Application Caches // files. myWebView .getSettings() .setAllowFileAccess( true); // Enables or disables file access within WebView. File access is enabled by // default. Note that this enables or disables file system access only. Assets // and resources are still accessible using file:///android_asset and // file:///android_res. myWebView .getSettings() .setAppCacheEnabled(true); // Sets whether the Application Caches API should be enabled. myWebView .getSettings() .setLoadsImagesAutomatically(true); // Sets whether the WebView should load image resources. if (!isNetworkAvailable()) { // loading offline myWebView.loadUrl( "https://www.google.com/calendar/htmlembed?src=ndo8qlb1snenh41blag9slaav8%40group.calendar.google.com"); // Solo cargará el cache si es que no hay internet disponible myWebView .getSettings() .setCacheMode(WebSettings.LOAD_CACHE_ONLY); // carga el cache si no hay internet Log.i(TAG, "SIN INTERNET"); } else { Log.i(TAG, "CON INTERNET"); myWebView.loadUrl( "https://www.google.com/calendar/htmlembed?src=ndo8qlb1snenh41blag9slaav8%40group.calendar.google.com"); // Cargará con internet por defecto myWebView.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT); } myWebView.setOnKeyListener( new View.OnKeyListener() { @Override public boolean onKey( View v, int keyCode, KeyEvent event) { // Metodo override que se ejecutaa si se presiona alguna tecla if (event.getAction() == KeyEvent.ACTION_DOWN) { // si se presiona atras WebView webView = (WebView) v; switch (keyCode) { case KeyEvent.KEYCODE_BACK: if (webView.canGoBack()) { // y el webview puede retroceder webView.goBack(); // retrocedera return true; } break; } } return false; } }); myWebView.setWebViewClient( new WebViewClient() { // Sets the WebViewClient that will receive various notifications and // requests. public void onReceivedError( WebView view, int errorCode, String description, String failingUrl) {} @Override public void onPageStarted( WebView view, String url, Bitmap favicon) { // override que se ejecuta cando la pagina empieza a cargara /** Se muestra el ProgressDialog al iniciar la carga de la web */ dialog.show(); // se muestra el progress dialog if (myWebView.getUrl() != myWebView.getOriginalUrl()) { // Si el url es diferente al original se hara zoom myWebView .getSettings() .setSupportZoom( true); // Sets whether the WebView should support zooming using its on-screen // zoom controls and gestures. myWebView.setInitialScale(100); // Zoom a la escala de 100 } } @Override public void onPageFinished( WebView view, String url) { // override que se ejecuta cuando la pagina acaba de cargar /** Se quita el progresDialog al terminar de cargar la web */ dialog.dismiss(); // Se cancela el progress dialog } @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { return false; } // Give the host application a chance to take over the control when a new url is about // to be loaded in the current WebView. }); return c; // Se retorna el View }
private void bindData() { // reference final WebView webView = (WebView) mRootView.findViewById(R.id.fragment_example_webview); // webview settings webView.getSettings().setBuiltInZoomControls(true); webView.getSettings().setSupportZoom(true); webView.getSettings().setDefaultZoom(ZoomDensity.MEDIUM); webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE); webView.getSettings().setJavaScriptEnabled(true); webView.getSettings().setPluginState(WebSettings.PluginState.ON); webView.setBackgroundColor(getResources().getColor(R.color.global_bg_front)); webView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY); // fixes scrollbar on Froyo webView.setWebChromeClient( new WebChromeClient()); // http://stackoverflow.com/questions/8541443/whats-causing-this-nullpointerexception webView.setWebViewClient( new WebViewClient() { @Override public void onPageFinished(WebView view, String url) { if (getActivity() != null) { Toast.makeText(getActivity(), mUrl, Toast.LENGTH_LONG).show(); mStatefulLayout.showContent(); } } @Override public void onReceivedError( WebView view, int errorCode, String description, String failingUrl) { if (getActivity() != null) { webView.loadUrl("about:blank"); Toast.makeText(getActivity(), errorCode + ": " + description, Toast.LENGTH_LONG) .show(); mStatefulLayout.showEmpty(); } } @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { if (url != null && (url.startsWith("http://") || url.startsWith("https://"))) { view.getContext().startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url))); return true; } else { return false; } } }); webView.setOnKeyListener( new OnKeyListener() { @Override public boolean onKey(View v, int keyCode, KeyEvent event) { if (event.getAction() == KeyEvent.ACTION_DOWN) { WebView webView = (WebView) v; switch (keyCode) { case KeyEvent.KEYCODE_BACK: if (webView.canGoBack()) { webView.goBack(); return true; } break; } } return false; } }); webView.requestFocus( View .FOCUS_DOWN); // http://android24hours.blogspot.cz/2011/12/android-soft-keyboard-not-showing-on.html webView.setOnTouchListener( new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: case MotionEvent.ACTION_UP: if (!v.hasFocus()) { v.requestFocus(); } break; } return false; } }); // load web url mStatefulLayout.showProgress(); webView.loadUrl(mUrl); }
@SuppressLint("JavascriptInterface") public void inintView() { findViewById(R.id.img_back).setOnClickListener(this); tileView = (TextView) findViewById(R.id.tv_video_name); mWebView = (WebView) findViewById(R.id.webWiew); mWebView.getSettings().setDomStorageEnabled(true); mWebView.getSettings().setJavaScriptEnabled(true); mWebView.setWebViewClient(new webViewClient() {}); mWebView.setWebChromeClient( new WebChromeClient() { @Override public void onReceivedTitle(WebView view, String title) { super.onReceivedTitle(view, title); tileView.setText(title); } }); mWebView.loadUrl(mWebUrl); // mWebView.addJavascriptInterface(new Object() { // @JavascriptInterface // public void clickOnAndroid(final String name, final String detail, // final String money) { // mHandler.post(new Runnable() { // public void run() { // // PayDemoActivity.aliPay(getActivity(), mHandler, name, // // detail, money); // // LogUtils.d("clickOnAndroid------" + name + "---" + // // detail + "---" + money); // } // }); // } // // }, "pay"); mWebView.addJavascriptInterface( new Object() { @JavascriptInterface public void clickOnAndroid(final boolean argree) { LogUtils.d("argreement==" + argree); mHandler.post( new Runnable() { public void run() { Utils.toast(AgreementActivity.this, "您已经同意了本协议"); LogUtils.d("argreement==" + argree); } }); } }, "argreement"); // 点击后退按钮,让WebView后退一页(也可以覆写Activity的onKeyDown方法) mWebView.setOnKeyListener( new View.OnKeyListener() { @Override public boolean onKey(View v, int keyCode, KeyEvent event) { if (event.getAction() == KeyEvent.ACTION_DOWN) { if (keyCode == KeyEvent.KEYCODE_BACK && mWebView.canGoBack()) { // 表示按返回键时的操作 mWebView.goBack(); // 后退 // webview.goForward();//前进 return true; // 已处理 } } return false; } }); }