android - Webview in qr code scanner -


class mywebclient extends webviewclient {      @override         public void onpagestarted(webview view, string url, bitmap favicon) {             // todo auto-generated method stub             super.onpagestarted(view, url, favicon);         }          @override         public boolean shouldoverrideurlloading(webview view, string url) {             // todo auto-generated method stub                 return false;          }     }  previewcallback previewcb = new previewcallback() {         public void onpreviewframe(byte[] data, camera camera) {             camera.parameters parameters = camera.getparameters();             size size = parameters.getpreviewsize();              image barcode = new image(size.width, size.height, "y800");             barcode.setdata(data);              int result = scanner.scanimage(barcode);              if (result != 0) {                 previewing = false;                 mcamera.setpreviewcallback(null);                 mcamera.stoppreview();                  symbolset syms = scanner.getresults();                 (symbol sym : syms) {                    string value = new string(sym.getdata());                   if(value.startswith("http://192.168.1.6")){                    scantext.settext("qr code result: " + value);                     barcodescanned = true;                     webview webview = (webview) findviewbyid(r.id.web_engine);                     webview.setwebviewclient(new mywebclient());                      webview.getsettings().setjavascriptenabled(true);                     webview.loadurl(value);                    }                   else{                       scantext.settext("qr code result 2: " + value);                       barcodescanned = true;                       }                    textview tv = (textview) findviewbyid(r.id.scantext);                     tv.setmovementmethod(linkmovementmethod.getinstance());                   }              }           }     }; 

here logcat:

03-25 20:05:22.714: e/androidruntime(14267): fatal exception: main 03-25 20:05:22.714: e/androidruntime(14267): java.lang.nullpointerexception 03-25 20:05:22.714: e/androidruntime(14267):    @ net.sourceforge.zbar.android.cameratest.cameratestactivity$2.onpreviewframe(cameratestactivity.java:201) 03-25 20:05:22.714: e/androidruntime(14267):    @ android.hardware.camera$eventhandler.handlemessage(camera.java:864) 03-25 20:05:22.714: e/androidruntime(14267):    @ android.os.handler.dispatchmessage(handler.java:99) 03-25 20:05:22.714: e/androidruntime(14267):    @ android.os.looper.loop(looper.java:176) 03-25 20:05:22.714: e/androidruntime(14267):    @ android.app.activitythread.main(activitythread.java:5317) 03-25 20:05:22.714: e/androidruntime(14267):    @ java.lang.reflect.method.invokenative(native method) 03-25 20:05:22.714: e/androidruntime(14267):    @ java.lang.reflect.method.invoke(method.java:511) 03-25 20:05:22.714: e/androidruntime(14267):    @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:1102) 03-25 20:05:22.714: e/androidruntime(14267):    @ com.android.internal.os.zygoteinit.main(zygoteinit.java:869) 03-25 20:05:22.714: e/androidruntime(14267):    @ dalvik.system.nativestart.main(native method) 

i have qr code scanner app. app stops when qr code scanned starts http://192.168.1.6. want show link in webview not in browser. if url not start http://192.168.1.6 open link in browser.

you need implement webviewclient.shouldoverrideurlloading function correctly.

first, please not call loadurl it. url load in progress already, , calling again incorrect.

second, can check url being loaded (it's passed parameter shouldoverrideurlloading http://192.168.1.6 , change logic right thing depending on whether it's there or not. sounds if it's there want return false handle load in webview. otherwise, should create , send action_view intent load url in device's browser , return true.

please see http://developer.android.com/reference/android/webkit/webviewclient.html#shouldoverrideurlloading(android.webkit.webview, java.lang.string) , http://developer.android.com/reference/android/content/intent.html


Comments

Popular posts from this blog

user interface - How to replace the Python logo in a Tkinter-based Python GUI app? -

objective c - Greedy NSProgressIndicator Allocation -

how to set an OCR language in Google Drive -