Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > Mobile > Mobile Forum > สอบถามเรื่อง webview android หน่อยครับ ทั้งอัพโหลด และดาวน์โหลด



 

สอบถามเรื่อง webview android หน่อยครับ ทั้งอัพโหลด และดาวน์โหลด

 



Topic : 085059



โพสกระทู้ ( 35 )
บทความ ( 0 )



สถานะออฟไลน์




คือว่า webview ไม่สามารถรองรับ tax ของ html---->(<input type='file'>) ได้อะครับ กดแล้วไม่มีอะไรขึ้นเลย ผมจะบราวน์ไฟล์ใน sdcard
และการดาวน์โหลด webview ก้อไม่สามารถ กดที่ลิ้งค์แล้วดาวนืโหลดไฟล์ให้อะครับ นิ่งหมดเลยทั้งสอง

ไม่ทราบว่าต้องแก้ตรงไหนมั้งอะครับ ต้อง set ตัว webview ยังไงมั้งครับ
วานผู้รู้ช่วยตอบที



Tag : Mobile







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2012-10-06 16:59:37 By : ronard View : 3018 Reply : 12
 

 

No. 1



โพสกระทู้ ( 35 )
บทความ ( 0 )



สถานะออฟไลน์


public class ConnectServer extends Activity{
	
	final Activity activity = this;
	private ValueCallback<Uri> mUploadMessage;
	private final static int FILECHOOSER_RESULTCODE=1;
	private WebView webView;
	private static final int MENU_BACK = 1;
	protected static final String TAG = null;
	  
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        this.getWindow().requestFeature(Window.FEATURE_PROGRESS);
        setContentView(R.layout.webview);
        WebView webView = (WebView) findViewById(R.id.webview);
        
        webView.getSettings().setJavaScriptEnabled(true);
        webView.getSettings().setPluginState(WebSettings.PluginState.ON);
        webView.getSettings().setPluginsEnabled(true);
        webView.getSettings().setDomStorageEnabled(true);
        webView.getSettings().setDefaultZoom(WebSettings.ZoomDensity.FAR);
        webView.getSettings().setBuiltInZoomControls(true);
        webView.getSettings().setAppCacheEnabled(true);
        webView.getSettings().setDatabaseEnabled(true);
        webView.getSettings().setGeolocationDatabasePath("/data/data/<my-app>");

        
        WebSettings webSettings = webView.getSettings();
        webSettings.setJavaScriptEnabled(true);
        webSettings.setSupportZoom(false);
        webSettings.setAllowFileAccess(true);
        
        //webSettings.setLoadsImagesAutomatically(true);
        
        webSettings.setSavePassword(false);
        webSettings.setSaveFormData(false);
        webSettings.setJavaScriptEnabled(true);  
        webSettings.setSaveFormData(true);
        
        webView.setDownloadListener(new DownloadListener() {
            public void onDownloadStart(String url, String userAgent,
                    String contentDisposition, String mimetype,
                    long contentLength) {
                Intent intent = new Intent(Intent.ACTION_VIEW);
               // intent.setType("application/x-rar-compressed"); 
                intent.setData(Uri.parse(url));
                startActivity(intent);
            }
        });
        
        getWindow().setFlags( WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,
                WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);
        
             //run your normal code path here
        	webView.setWebChromeClient(new WebChromeClient() {
        		
//        	     public void onGeolocationPermissionsShowPrompt(final String origin, final GeolocationPermissions.Callback callback) {
//        	        Log.i(TAG, "onGeolocationPermissionsShowPrompt()");
//
//        	        final boolean remember = false;
//        	        AlertDialog.Builder builder = new AlertDialog.Builder(getBaseContext());
//        	        builder.setTitle("Locations");
//        	        builder.setMessage("Would like to use your Current Location ")
//        	        .setCancelable(true).setPositiveButton("Allow", new DialogInterface.OnClickListener() {
//        	           public void onClick(DialogInterface dialog, int id) {
//        	              // origin, allow, remember
//        	              callback.invoke(origin, true, remember);
//        	           }
//        	        }).setNegativeButton("Don't Allow", new DialogInterface.OnClickListener() {
//        	           public void onClick(DialogInterface dialog, int id) {
//        	              // origin, allow, remember
//        	              callback.invoke(origin, false, remember);
//        	           }
//        	        });
//        	        AlertDialog alert = builder.create();
//        	        alert.show();
//        	     }
        	     //The undocumented magic method override  
                //Eclipse will swear at you if you try to put @Override here  
                public void openFileChooser(ValueCallback<Uri> uploadMsg) {  
                  
                 mUploadMessage = uploadMsg;  
                 Intent i = new Intent(Intent.ACTION_GET_CONTENT);  
                 i.addCategory(Intent.CATEGORY_OPENABLE);  
                 i.setType("image/*");
                 i.setType(AUDIO_SERVICE);
                 i.setType(STORAGE_SERVICE);
                 i.setType("text/*");
                 i.setType(DOWNLOAD_SERVICE);
                 ConnectServer.this.startActivityForResult(Intent.createChooser(i,"File Chooser"), FILECHOOSER_RESULTCODE);  
            
                }  
           
                public void onProgressChanged(WebView view, int progress)
                {
                    activity.setTitle("กำลังโหลด...");
                    activity.setProgress(progress * 100);
      
                    if(progress == 100)
                        activity.setTitle(R.string.app_name);
                }
            });
       
            webView.setWebViewClient(new WebViewClient() {
                @Override
                public void onReceivedError(WebView view, int errorCode, String description, String failingUrl)
                {
                    // Handle the error
                }
      
                @Override
                public boolean shouldOverrideUrlLoading(WebView view, String url) {
                    Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));

                    List<ResolveInfo> infos = getPackageManager().queryIntentActivities(intent, 0);

                    if (infos.size() == 0) {
                        // apparently nothing can handle this URL
                        return false;
                    }

                    for (ResolveInfo info : infos) {
                        if (info.activityInfo.packageName.equals("app.project.lecturenote")) {
                            view.loadUrl(url);
                            return true;
                        }
                    }

                    startActivity(intent);
                    return true;
                }
            });
             
            webView.loadUrl("http://xxx.xxx.x.xx/xxx.php");
            webView.getSettings().setBuiltInZoomControls(true);
            
            
        }
    public void downloadfileto(String fileurl, String filename) { 
        String myString; 
        try { 
                FileOutputStream f = new FileOutputStream(filename); 
                try { 
                        URL url = new URL(fileurl); 
                        URLConnection urlConn = url.openConnection(); 
                        InputStream is = urlConn.getInputStream(); 
                        BufferedInputStream bis = new BufferedInputStream(is, 8000); 
                        int current = 0; 
                        while ((current = bis.read()) != -1) { 
                                f.write((byte) current); 
                        } 
                } catch (Exception e) { 
                        myString = e.getMessage(); 
                } 
                f.flush(); 
                f.close(); 
        } catch (FileNotFoundException e) { 
                e.printStackTrace(); 
        } catch (IOException e) { 
                e.printStackTrace(); 
        } 
} 
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        if (url != null && url.startsWith("market://")) {
            view.getContext().startActivity(
                new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
            return true;
        } else {
            return false;
        }
    }
	@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
		super.onActivityResult(requestCode, resultCode, intent);
	
		if (requestCode == FILECHOOSER_RESULTCODE) {
	        if (null == mUploadMessage)
	            return;
	        Uri result = intent == null || resultCode != RESULT_OK ? null
	                : intent.getData();
	        mUploadMessage.onReceiveValue(result);
	        mUploadMessage = null;
		// TODO Auto-generated method stub
		
	}
    
	}

//	@Override
//	public boolean onCreateOptionsMenu(Menu menu) {
//		super.onCreateOptionsMenu(menu); 
//	    menu.add(0, 1, 0, "Back").setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
//	    menu.add(0, 2, 0, "Refresh").setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
//	    menu.add(0, 3, 0, "Forward").setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
//	    return true; 
//	}
//
//	@Override
//	public boolean onOptionsItemSelected(MenuItem item) {
//		switch (item.getItemId()){
//        case 1: //If the ID equals 1, go back
//            webView.goBack();
//        return true;
//        case 2 : //If the ID equals 2, refresh
//            webView.reload();
//        return true;
//        case 3: //If the ID equals 3, go forward
//            webView.goForward();
//        return true;
//        }
//    return false;
//	}

	@Override
	public boolean onKeyDown(int keyCode, KeyEvent event) {
		if ((keyCode == KeyEvent.KEYCODE_BACK) && webView.canGoBack()) {
	        webView.goBack();
	        return true;
	    }   
	    return super.onKeyDown(keyCode, event);
	}
	class MyWebChromeClient extends WebChromeClient {
	    // The undocumented magic method override
	    // Eclipse will swear at you if you try to put @Override here
	    public void openFileChooser(ValueCallback<Uri> uploadMsg) {

	        mUploadMessage = uploadMsg;
	        Intent i = new Intent(Intent.ACTION_GET_CONTENT);
	        i.addCategory(Intent.CATEGORY_OPENABLE);
	        i.setType("image/*");
	        ConnectServer.this.startActivityForResult(
	                Intent.createChooser(i, "Image Browser"),
	                FILECHOOSER_RESULTCODE);
	    }
	}
	 @Override
		public boolean onCreateOptionsMenu(Menu menu) {
			menu.add(0, MENU_BACK, 0, "back")
	        .setTitleCondensed("กลับ")
	        .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
			return true;
		}

		@Override
		public boolean onOptionsItemSelected(MenuItem item) {
			switch (item.getItemId()) {
			case MENU_BACK:
				finish();
				break;

			default:
				break;
			}
			return super.onOptionsItemSelected(item);
		}
}


ผมเซ็ตมั่วไปแล้วครับ หาตัวไหนก้อไม่ได้สักตัว ช่วยหน่อยนะครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-10-06 17:05:28 By : ronard
 


 

No. 2



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

ผมไม่แน่ใจว่า File Upload บน Android จะแสดงบน WebView หรือเปล่าครับ เพราะมันใช้ความสามารถของ Web Browser ครับ (ใน iOS เพิ่งจะมีใน iOS6)

ส่วนจะ Upload จาก SD Card ลองดูบทความนี้ครับ



Go to : Android Upload Send file to Web Server (Website)
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-10-06 20:30:04 By : mr.win
 

 

No. 3



โพสกระทู้ ( 35 )
บทความ ( 0 )



สถานะออฟไลน์


ถ้าเป็น android 4.0 จะมีมั้ยครับ ดูยังไงเหรอครับ
และความสามารถของ Web Browser ใน iOS เป็นยังไงหรือครับ ดูยังไงอะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-10-06 21:40:30 By : ronard
 


 

No. 4



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

ลองเปิด Web Browser บน Android ดูครับ แล้วเปิดเว็บที่มีการอัพโหลดว่าสามารถคลิกได้หรือเปล่า
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-10-06 21:45:15 By : mr.win
 


 

No. 5



โพสกระทู้ ( 35 )
บทความ ( 0 )



สถานะออฟไลน์


Web Browser ของ Android ทำได้ครับ ที่มากับเครื่องทำได้ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-10-06 21:55:30 By : ronard
 


 

No. 6



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

ในเครื่อง Emulator ทำได้หรือเปล่าครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-10-06 21:56:31 By : mr.win
 


 

No. 7



โพสกระทู้ ( 35 )
บทความ ( 0 )



สถานะออฟไลน์


ในเครื่องจริง tab 8รับ


ในเครื่อง emulator ครับ


ประวัติการแก้ไข
2012-10-09 00:07:47
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-10-06 22:33:16 By : ronard
 


 

No. 8



โพสกระทู้ ( 35 )
บทความ ( 0 )



สถานะออฟไลน์


การอัพโหลดเมื่อคลิกปุ่ม browse จะเป็นดังรูปข้างบนเหมือนกันทั้งสอง ทั้ง emu และเครื่องจริงครับ
ส่วนการดาวน์โหลดนั้นทั้งใน emu และเครื่องจริงสามารถดาวนืโหลดได้ครับ แต่ผม set ให้มันดาวน์โหลดไม่ได้ครับ ทำยังไงครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-10-06 22:37:19 By : ronard
 


 

No. 9



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

น่าจะต้องเพิ่ม addJavascriptInterface() เข้าไปครับ ลองดูบทความนี้ครับ

  webView = (WebView) findViewById(R.id.webView);
  WebSettings webSettings = webView.getSettings();
  webSettings.setJavaScriptEnabled(true);
  webView.addJavascriptInterface(new JavaScriptInterface(this), "MyAndroid");


  <html>
    <head>
    <script type="text/javascript">
    function getValue()
      {
        var x=document.getElementById("content").innerHTML;
        //  alert(x);
        MyAndroid.receiveValueFromJs(x);
      }
    </script>
    </head>
    <body>
    <div id="content">
    This is html content <hr/> 
    Other contents;
    <input type="button" onclick="getValue()" value="Get Content" />
    </div>
    </body>
    </html>


http://stackoverflow.com/questions/8007911/android-html-code-from-webview
http://android-puremvc-ormlite.blogspot.com/2011/07/using-java-script-in-android-webview.html

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-10-07 09:56:29 By : mr.win
 


 

No. 10



โพสกระทู้ ( 35 )
บทความ ( 0 )



สถานะออฟไลน์


ขอบคุณครับ mr.win เด๋วผมจะลองทำดูก่อนครับ ถ้าได้ ไม่ได้ยังไงจะมาบอกอีกทีครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-10-07 16:59:56 By : ronard
 


 

No. 11



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

ได้ยังไงเขียนวิธีไว้ด้วยก็ดีครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-10-07 20:39:12 By : mr.win
 


 

No. 12



โพสกระทู้ ( 35 )
บทความ ( 0 )



สถานะออฟไลน์


ไม่ได้ครับ ผมเปลี่ยนไปใช้วิธีอื่น โดยการ intent ไปยัง browser ของแอนดรอยด์แล้วครับ

Code
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse("http://xxx.xxx.x.x/xxx/"));
startActivity(i);

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-10-09 00:07:12 By : ronard
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : สอบถามเรื่อง webview android หน่อยครับ ทั้งอัพโหลด และดาวน์โหลด
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 02
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่