protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); // Create your application here SetContentView(Resource.Layout.KeyboardInputView); _btnGo = FindViewById <Button> (Resource.Id.btnGo); _txtUrl = FindViewById <EditText> (Resource.Id.txtUrl); _webView = FindViewById <WebView> (Resource.Id.webView); _InputMethodManager = (InputMethodManager)GetSystemService(Context.InputMethodService); _btnGo.Click += (object sender, EventArgs e) => { _InputMethodManager.HideSoftInputFromWindow( _txtUrl.WindowToken, HideSoftInputFlags.ImplicitOnly); }; var client = new ContentWebViewClient(); _webView.SetWebViewClient(client); _webView.Settings.JavaScriptEnabled = true; _webView.Settings.UserAgentString = @"Android"; _webView.LoadUrl("http://stackoverflow.com/"); }
protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); // Set our view from the "main" layout resource SetContentView(Resource.Layout.Main); #region WebView //_InputMethodManager = (InputMethodManager)GetSystemService (Context.InputMethodService); var txtUrl = FindViewById <EditText> (Resource.Id.register_test_txtUrl); var btnGo = FindViewById <Button> (Resource.Id.register_test_btnGO); var webView = FindViewById <WebView> (Resource.Id.register_test_webView); var client = new ContentWebViewClient(); //webView.SetWebViewClient (client); webView.SetWebChromeClient(client); //webView.SetWebViewClient (new BrowserClient ()); //webView.Settings.UserAgentString =@""; //webView.Settings.UserAgentString = @"Mozilla/5.0 (iPad; CPU OS 7_0 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) CriOS/30.0.1599.12 Mobile/11A465 Safari/8536.25 (3B92C18B-D9DE-4CB7-A02A-22FD2AF17C8F)"; webView.Settings.JavaScriptEnabled = true; webView.Settings.UserAgentString = @"Android"; // 負責與頁面溝通 - WebView -> Native MyJSInterface myJSInterface = new MyJSInterface(this); webView.AddJavascriptInterface(myJSInterface, "TP"); myJSInterface.CallFromPageReceived += delegate(object sender, MyJSInterface.CallFromPageReceivedEventArgs e) { Debug.WriteLine(e.Result); }; // 負責與頁面溝通 - Native -> WebView JavaScriptResult callResult = new JavaScriptResult(); callResult.JavaScriptResultReceived += (object sender, JavaScriptResult.JavaScriptResultReceivedEventArgs e) => { Debug.WriteLine(e.Result); }; // 載入一般網頁 //MyWebView.LoadUrl ("http://stackoverflow.com/"); // 載入以下程式碼進行互動 webView.LoadDataWithBaseURL( null , @"<html> <head> <title>Local String</title> <style type='text/css'>p{font-family : Verdana; color : purple }</style> <script language='JavaScript'> var lookup = '中文訊息' function msg(){ window.location = 'callfrompage://Hi' } </script> </head> <body><p>Hello World!</p><br /> <button type='button' onclick='TP.CallFromPage(lookup)' text='Hi From Page'>Hi From Page</button> </body> </html>" , "text/html" , "utf-8" , null); #endregion #region EditText _InputMethodManager = (InputMethodManager)GetSystemService(Context.InputMethodService); /* * TxtUrl = FindViewById<EditText> (Resource.Id.txtUrl); * TxtUrl.TextChanged += (object sender, * Android.Text.TextChangedEventArgs e) => { * Debug.WriteLine( TxtUrl.Text +":"+ e.Text ); * }; */ #endregion btnGo.Click += (object sender, System.EventArgs e) => { // AlertDialog.Builder alert = new AlertDialog.Builder(this); // // alert.SetTitle("URL"); // alert.SetMessage( txtUrl.Text); // alert.SetPositiveButton("確認", (alertsender,args)=>{ // Debug.WriteLine("Confirm");}); // alert.SetNegativeButton("取消", (alertsender,args)=>{ // Debug.WriteLine("Cancel");}); // // RunOnUiThread(()=>{ // alert.Show(); // // }); RunOnUiThread(() => { webView.EvaluateJavascript(@"alert('michael test');", callResult); }); /* * _InputMethodManager.HideSoftInputFromWindow(txtUrl.WindowToken, 0); * webView.LoadUrl( txtUrl.Text ); * //轉圈圈 * RunOnUiThread( * ()=>{ * AndHUD.Shared.Show(this, "Status Message", -1, MaskType.Clear); * } * * );*/ }; client.WebViewLocaitonChanged += (object sender, ContentWebViewClient.WebViewLocaitonChangedEventArgs e) => { Debug.WriteLine(e.CommandString); }; client.WebViewLoadCompleted += (object sender, ContentWebViewClient.WebViewLoadCompletedEventArgs e) => { RunOnUiThread(() => { AndHUD.Shared.Dismiss(this); }); }; }
protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); // Set our view from the "main" layout resource SetContentView(Resource.Layout.web_mywebview); #region WebView var client = new ContentWebViewClient(); client.WebViewLocaitonChanged += (object sender, ContentWebViewClient.WebViewLocaitonChangedEventArgs e) => { Debug.WriteLine(e.CommandString); }; client.WebViewLoadCompleted += (object sender, ContentWebViewClient.WebViewLoadCompletedEventArgs e) => { RunOnUiThread(() => { AndHUD.Shared.Dismiss(this); }); }; MyWebView = FindViewById <WebView> (Resource.Id.web_mywebview_webview); // NOTICE : 先換成一般的 WebViewClient MyWebView.SetWebViewClient(client); //MyWebView.SetWebViewClient(new MyWebClient()); MyWebView.Settings.JavaScriptEnabled = true; MyWebView.Settings.UserAgentString = @"Android"; // 負責與頁面溝通 - WebView -> Native MyJSInterface myJSInterface = new MyJSInterface(this); MyWebView.AddJavascriptInterface(myJSInterface, "TP"); myJSInterface.CallFromPageReceived += delegate(object sender, MyJSInterface.CallFromPageReceivedEventArgs e) { Debug.WriteLine(e.Result); }; // 負責與頁面溝通 - Native -> WebView JavaScriptResult callResult = new JavaScriptResult(); callResult.JavaScriptResultReceived += (object sender, JavaScriptResult.JavaScriptResultReceivedEventArgs e) => { Debug.WriteLine(e.Result); }; // 載入一般網頁 //MyWebView.LoadUrl ("http://stackoverflow.com/"); // 載入以下程式碼進行互動 /* * MyWebView.LoadDataWithBaseURL ( * null * , @"<html> * <head> * <title>Local String</title> * <style type='text/css'>p{font-family : Verdana; color : purple }</style> * <script language='JavaScript'> * var lookup = '中文訊息' * function msg(){ window.location = 'callfrompage://Hi' } * </script> * </head> * <body><p>Hello World!</p><br /> * <button type='button' onclick='TP.CallFromPage(lookup)' text='Hi From Page'>Hi From Page</button> * </body> * </html>" * , "text/html" * , "utf-8" * , null); * */ #endregion #region EditText _InputMethodManager = (InputMethodManager)GetSystemService(Context.InputMethodService); TxtUrl = FindViewById <EditText> (Resource.Id.web_mywebview_txtUrl); TxtUrl.TextChanged += (object sender, Android.Text.TextChangedEventArgs e) => { Debug.WriteLine(TxtUrl.Text + ":" + e.Text); }; #endregion BtnGo = FindViewById <Button> (Resource.Id.web_mywebview_btnGo); BtnGo.Click += (object sender, EventArgs e) => { //RunOnUiThread (() => { // MyWebView.EvaluateJavascript (@"msg();", callResult); //}); var url = TxtUrl.Text.Trim(); AlertDialog.Builder alert = new AlertDialog.Builder(this); alert.SetTitle(url); alert.SetMessage(""); alert.SetNegativeButton("取消", (senderAlert, args) => { }); alert.SetPositiveButton("確認", (senderAlert, args) => { RunOnUiThread( () => { AndHUD.Shared.Show(this, "Status Message", -1, MaskType.Clear); } ); MyWebView.LoadUrl(url); }); RunOnUiThread(() => { alert.Show(); }); // _InputMethodManager.HideSoftInputFromWindow( TxtUrl.WindowToken, HideSoftInputFlags.None); }; }
protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); SetContentView(Resource.Layout.webflow_mywebview); #region WebView var client = new ContentWebViewClient(); client.WebViewLocaitonChanged += (object sender, ContentWebViewClient.WebViewLocaitonChangedEventArgs e) => { Debug.WriteLine(e.CommandString); }; client.WebViewLoadCompleted += (object sender, ContentWebViewClient.WebViewLoadCompletedEventArgs e) => { RunOnUiThread(() => { //AndHUD.Shared.Dismiss(this); Debug.WriteLine("WebViewLoad"); }); }; MyWebView = FindViewById <WebView>(Resource.Id.webflow_webview_viewweb); // NOTICE : 先換成一般的 WebViewClient //MyWebView.SetWebViewClient(client); MyWebView.SetWebViewClient(new MyWebClient()); MyWebView.Settings.JavaScriptEnabled = true; MyWebView.Settings.UserAgentString = @"Android"; // 負責與頁面溝通 - WebView -> Native MyJSInterface myJSInterface = new MyJSInterface(this); MyWebView.AddJavascriptInterface(myJSInterface, "TP"); myJSInterface.CallFromPageReceived += delegate(object sender, MyJSInterface.CallFromPageReceivedEventArgs e) { //MyWebView.LoadUrl("http://developer.xamarin.com"); Debug.WriteLine(e.Result); }; // 負責與頁面溝通 - Native -> WebView JavaScriptResult callResult = new JavaScriptResult(); callResult.JavaScriptResultReceived += (object sender, JavaScriptResult.JavaScriptResultReceivedEventArgs e) => { Debug.WriteLine(e.Result); }; // 載入一般網頁 //MyWebView.LoadUrl ("http://stackoverflow.com/"); // 載入以下程式碼進行互動 MyWebView.LoadDataWithBaseURL( null , @"<html> <head> <title>Local String</title> <style type='text/css'>p{font-family : Verdana; color : purple }</style> <script language='JavaScript'> var lookup = '中文訊息' function msg(){ window.location = 'callfrompage://Hi' } </script> </head> <body><p>Hello World!</p><br /> <button type='button' onclick='TP.CallFromPage(lookup)' text='Hi From Page'>Hi From Page</button> </body> </html>" , "text/html" , "utf-8" , null); #endregion BtnGo = FindViewById <Button>(Resource.Id.webflow_webview_btngo); BtnGo.Click += (object sender, EventArgs e) => { RunOnUiThread(() => { MyWebView.EvaluateJavascript(@"msg();", callResult); }); /* * var url = TxtUrl.Text.Trim() ; * * AlertDialog.Builder alert = new AlertDialog.Builder (this); * alert.SetTitle (url); * alert.SetNegativeButton( "取消", (senderAlert, args) =>{ * * * }); * alert.SetPositiveButton( "確認", (senderAlert, args) =>{ * * RunOnUiThread( * ()=>{ * AndHUD.Shared.Show(this, "Status Message", -1, MaskType.Clear); * } * * ); * * MyWebView.LoadUrl (url); * * }); * * RunOnUiThread (() => { * alert.Show(); * } ); * * // * _InputMethodManager.HideSoftInputFromWindow( * TxtUrl.WindowToken, * HideSoftInputFlags.None ); */ }; }