[14021] 2019-04-23_一文彻底搞懂安卓WebView白名单校验

文档创建者:s7ckTeam
浏览次数:7
最后更新:2025-01-18
2019-04-23_一文彻底搞懂安卓WebView白名单校验 W e b V i e w r e b e y o n d   F r e e B u f   2 0 1 9 - 0 4 - 2 3 W e b V i e w 使 使 W e b V i e w A n d r o i d   S D K 便 W e b V i e w a n d r o i d . w e b k i t . W e b V i e w W e b V i e w S D K C h r o m i u m A n d r o i d   4 . 4 w e b k i t W e b V i e w   A p p   使 W e b V i e w   A p p 使 H T M L 5 H T M L 5 A P P W e b V i e w A n d r o i d   S D K A P P W e b V i e w A P P   J a v a K o t l i n n a t i v e 使 H 5 便 A P P W e b v i e w a d d J a v a s c r i p t I n t e r f a c e J a v a W e b V i e w W e b v i e w 便 J a v a s c r i p t J a v a d e m o   A P P A P P w e b v i e w M A i n A c t i v i t y w e b v i e w a d d J a v a s c r i p t I n t e r f a c e m y O b j J a v a m y O b j J a v a s c r i p t J a v a J s O b j e c t A P P h t t p s : / / w w w . r e b e y o n d . n e t / p o c . h t m p o c . h t m j s J a v a g e t T o k e n g e t T o k e n a l e r t d e m o   A P P p o c . h t m A P P p a c k a g e   r e b e y o n d . n e t . m y a p p l i c a t i o n ; i m p o r t   a n d r o i d . s u p p o r t . v 7 . a p p . A p p C o m p a t A c t i v i t y ; i m p o r t   a n d r o i d . o s . B u n d l e ; i m p o r t   a n d r o i d . w e b k i t . J a v a s c r i p t I n t e r f a c e ; i m p o r t   a n d r o i d . w e b k i t . W e b C h r o m e C l i e n t ; i m p o r t   a n d r o i d . w e b k i t . W e b V i e w ; i m p o r t   a n d r o i d . w e b k i t . W e b V i e w C l i e n t ; i m p o r t   a n d r o i d . w i d g e t . B u t t o n ; p u b l i c   c l a s s   M a i n A c t i v i t y   e x t e n d s   A p p C o m p a t A c t i v i t y   {         c l a s s   J s O b j e c t   {                 @ J a v a s c r i p t I n t e r f a c e                 p u b l i c   S t r i n g   g e t T o k e n ( )   {   r e t u r n   " { " t o k e n " : " 1 2 3 4 5 6 7 8 9 0 a b c d e f g " } " ;   }         }         @ O v e r r i d e         p r o t e c t e d   v o i d   o n C r e a t e ( B u n d l e   s a v e d I n s t a n c e S t a t e )   {                 s u p e r . o n C r e a t e ( s a v e d I n s t a n c e S t a t e ) ;                 s e t C o n t e n t V i e w ( R . l a y o u t . a c t i v i t y _ m a i n ) ;                 W e b V i e w   w e b V i e w   =   ( W e b V i e w )   f i n d V i e w B y I d ( R . i d . m y W e b v i e w ) ;                 w e b V i e w . g e t S e t t i n g s ( ) . s e t J a v a S c r i p t E n a b l e d ( t r u e ) ;                 w e b V i e w . s e t W e b V i e w C l i e n t ( n e w   W e b V i e w C l i e n t ( ) ) ;                 w e b V i e w . s e t W e b C h r o m e C l i e n t ( n e w   W e b C h r o m e C l i e n t ( ) ) ;                 w e b V i e w . a d d J a v a s c r i p t I n t e r f a c e ( n e w   J s O b j e c t ( ) , " m y O b j " ) ;                 w e b V i e w . l o a d U r l ( " h t t p s : / / w w w . r e b e y o n d . n e t / p o c . h t m " ) ;         } } < s c r i p t >         a l e r t ( w i n d o w . m y O b j . g e t T o k e n ( ) ) ; < / s c r i p t >
O K J a v a S c r i p t I n t e r f a c e d e m o   A P P A g e t T o k e n R o u n d   1 U R L A i n d e x O f S t r i n g [ ]   w h i t e L i s t = n e w   S t r i n g [ ] { " h u a w e i . c o m " , " h i c l o u d . c o m " } ; p a c k a g e   r e b e y o n d . n e t . m y a p p l i c a t i o n ; i m p o r t   a n d r o i d . s u p p o r t . v 7 . a p p . A p p C o m p a t A c t i v i t y ; i m p o r t   a n d r o i d . o s . B u n d l e ; i m p o r t   a n d r o i d . w e b k i t . J a v a s c r i p t I n t e r f a c e ; i m p o r t   a n d r o i d . w e b k i t . W e b C h r o m e C l i e n t ; i m p o r t   a n d r o i d . w e b k i t . W e b V i e w ; i m p o r t   a n d r o i d . w e b k i t . W e b V i e w C l i e n t ; i m p o r t   a n d r o i d . w i d g e t . B u t t o n ; p u b l i c   c l a s s   M a i n A c t i v i t y   e x t e n d s   A p p C o m p a t A c t i v i t y   {         c l a s s   J s O b j e c t   {                 @ J a v a s c r i p t I n t e r f a c e                 p u b l i c   S t r i n g   g e t T o k e n ( )   {   r e t u r n   " { " t o k e n " : " 1 2 3 4 5 6 7 8 9 0 a b c d e f g " } " ;   }         }         @ O v e r r i d e         p r o t e c t e d   v o i d   o n C r e a t e ( B u n d l e   s a v e d I n s t a n c e S t a t e )   {                 s u p e r . o n C r e a t e ( s a v e d I n s t a n c e S t a t e ) ;
h t t p : / / w w w . r e b e y o n d . n e t / p o c . h t m ? h u a w e i . c o m U R L U R L i n d e x O f U R L l o w 使 R o u n d   2 A 便 U R L R F C U R L A U R L : / / / h o s t p a y l o a d U R L U R L A u t h o r i t y A u t h o r i t y 访 访 f t p t e s t 1 2 3 4 5 6 U R L f t p : / / t e s t : 1 2 3 4 5 6 @ n j u . e d u . c n / R o u n d   3 A h o s t J a v a j a v a . n e t . U R L U R L 使 j a v a . n e t . U R L h o s t A 使 i n d e x O f p a y l o a d U R L h o s t h i c l o u d . c o m w w w . h i c l o u d . c o m r e b e y o n d . n e t                 s e t C o n t e n t V i e w ( R . l a y o u t . a c t i v i t y _ m a i n ) ;                 W e b V i e w   w e b V i e w   =   ( W e b V i e w )   f i n d V i e w B y I d ( R . i d . m y W e b v i e w ) ;                 w e b V i e w . g e t S e t t i n g s ( ) . s e t J a v a S c r i p t E n a b l e d ( t r u e ) ;                 w e b V i e w . s e t W e b V i e w C l i e n t ( n e w   W e b V i e w C l i e n t ( ) ) ;                 w e b V i e w . s e t W e b C h r o m e C l i e n t ( n e w   W e b C h r o m e C l i e n t ( ) ) ;                 w e b V i e w . a d d J a v a s c r i p t I n t e r f a c e ( n e w   J s O b j e c t ( ) , " m y O b j " ) ;                 S t r i n g   i n p u t U r l = " h t t p s : / / w w w . r e b e y o n d . n e t / p o c . h t m " ;                 i f   ( c h e c k D o m a i n ( i n p u t U r l ) )                 {                         w e b V i e w . l o a d U r l ( i n p u t U r l ) ;                 }         }         p r i v a t e   s t a t i c   b o o l e a n   c h e c k D o m a i n ( S t r i n g   i n p u t U r l ) {                 S t r i n g [ ]   w h i t e L i s t = n e w   S t r i n g [ ] { " h u a w e i . c o m " , " h i c l o u d . c o m " } ;                 f o r   ( S t r i n g   w h i t e D o m a i n : w h i t e L i s t )                 {                         i f   ( i n p u t U r l . i n d e x O f ( w h i t e D o m a i n ) > 0 )                                 r e t u r n   t r u e ;                 }                 r e t u r n     f a l s e ;         } } p r i v a t e   s t a t i c   b o o l e a n   c h e c k D o m a i n ( S t r i n g   i n p u t U r l ) {         S t r i n g [ ]   w h i t e L i s t = n e w   S t r i n g [ ] { " h u a w e i . c o m " , " h i c l o u d . c o m " } ;         S t r i n g   t e m p S t r = i n p u t U r l . r e p l a c e ( " : / / " , " " ) ;         S t r i n g   i n p u t D o m a i n = t e m p S t r . s u b s t r i n g ( 0 , t e m p S t r . i n d e x O f ( " / " ) ) ;   / / h o s t         f o r   ( S t r i n g   w h i t e D o m a i n : w h i t e L i s t )         {                 i f   ( i n p u t D o m a i n . i n d e x O f ( w h i t e D o m a i n ) > 0 )                         r e t u r n   t r u e ;         }         r e t u r n     f a l s e ; } < p r o t o c o l > : / / < u s e r > : < p a s s w o r d > @ < h o s t > : < p o r t > / < u r l - p a t h > h t t p : / / h u a w e i . c o m @ w w w . r e b e y o n d . n e t / p o c . h t m p r i v a t e   s t a t i c   b o o l e a n   c h e c k D o m a i n ( S t r i n g   i n p u t U r l )   t h r o w s   M a l f o r m e d U R L E x c e p t i o n   {         S t r i n g [ ]   w h i t e L i s t = n e w   S t r i n g [ ] { " h u a w e i . c o m " , " h i c l o u d . c o m " } ;         j a v a . n e t . U R L   u r l = n e w   j a v a . n e t . U R L ( i n p u t U r l ) ;         S t r i n g   i n p u t D o m a i n = u r l . g e t H o s t ( ) ;   / / h o s t         f o r   ( S t r i n g   w h i t e D o m a i n : w h i t e L i s t )         {                 i f   ( i n p u t D o m a i n . i n d e x O f ( w h i t e D o m a i n ) )   / / w w w . h u a w e i . c o m             a p p . h i c l o u d . c o m                         r e t u r n   t r u e ;         }         r e t u r n     f a l s e ; } h t t p : / / w w w . h i c l o u d . c o m . r e b e y o n d . n e t / p o c . h t m
R o u n d   4 i n d e x O f s t a r t s W i t h e n d s W i t h e q u a l s e q u a l s s t a r t s W i t h A e n d W i t h j a v a . n e t . U R L e n d W i t h p a y l o a d e n d s W i t h h u a w e i r e b e y o n d h u a w e i . c o m 6 0 R o u n d   5 A e n d s W i t h j a v a . n e t . U R L h o s t j a v a . n e t . U R L h t t p s : / / w w w . r e b e y o n d . n e t @ w w w . h u a w e i . c o m / p o c . h t m U R L j a v a . n e t . U R L g e t H o s t h o s t w w w . h u a w e i . c o m 访 w w w . r e b e y o n d . n e t w w w . r e b e y o n d . n e t 访 w w w . r e b e y o n d . n e t / @ . h u a w e i . c o m / p o c . h t m J a v a S c r i p t I n t e r f a c e g e t T o k e n @ U R L j a v a . n e t . U R L g e t H o s t w w w . r e b e y o n d . n e t . h u a w e i . c o m e n d s W i t h 访 w w w . r e b e y o n d . n e t 访 J a v a 1 0 O r a c l e a n d r o i d . n e t . U r i 1 8 1 4 b u g g i t   c o m m i t R o u n d   6 p r i v a t e   s t a t i c   b o o l e a n   c h e c k D o m a i n ( S t r i n g   i n p u t U r l )   t h r o w s   M a l f o r m e d U R L E x c e p t i o n   {         S t r i n g [ ]   w h i t e L i s t = n e w   S t r i n g [ ] { " h u a w e i . c o m " , " h i c l o u d . c o m " } ;         j a v a . n e t . U R L   u r l = n e w   j a v a . n e t . U R L ( i n p u t U r l ) ;         S t r i n g   i n p u t D o m a i n = u r l . g e t H o s t ( ) ;   / / h o s t         f o r   ( S t r i n g   w h i t e D o m a i n : w h i t e L i s t )         {                 i f   ( i n p u t D o m a i n . e n d s W i t h ( w h i t e D o m a i n ) )   / / w w w . h u a w e i . c o m             a p p . h i c l o u d . c o m                         r e t u r n   t r u e ;         }         r e t u r n     f a l s e ; } h t t p : / / r e b e y o n d h u a w e i . c o m / p o c . h t m p r i v a t e   s t a t i c   b o o l e a n   c h e c k D o m a i n ( S t r i n g   i n p u t U r l )   t h r o w s   M a l f o r m e d U R L E x c e p t i o n   {         S t r i n g [ ]   w h i t e L i s t = n e w   S t r i n g [ ] { " h u a w e i . c o m " , " h i c l o u d . c o m " } ;         j a v a . n e t . U R L   u r l = n e w   j a v a . n e t . U R L ( i n p u t U r l ) ;         S t r i n g   i n p u t D o m a i n = u r l . g e t H o s t ( ) ;   / / h o s t         f o r   ( S t r i n g   w h i t e D o m a i n : w h i t e L i s t )         {                 i f   ( i n p u t D o m a i n . e n d s W i t h ( " . " + w h i t e D o m a i n ) )   / / w w w . h u a w e i . c o m             a p p . h i c l o u d . c o m                         r e t u r n   t r u e ;         }         r e t u r n     f a l s e ; } h t t p s : / / w w w . r e b e y o n d . n e t . h u a w e i . c o m
J D K j a v a . n e t . U R L j a v a . n e t . U R I A j a v a . n e t . U R I R o u n d 5 p a y l o a d U R L A j a v a . n e t . U R I j a v a . n e t . U R L h o s t p r i v a t e   s t a t i c   b o o l e a n   c h e c k D o m a i n ( S t r i n g   i n p u t U r l )   t h r o w s     U R I S y n t a x E x c e p t i o n   {         S t r i n g [ ]   w h i t e L i s t = n e w   S t r i n g [ ] { " h u a w e i . c o m " , " h i c l o u d . c o m " } ;         j a v a . n e t . U R I   u r l = n e w   j a v a . n e t . U R I ( i n p u t U r l ) ;         S t r i n g   i n p u t D o m a i n = u r l . g e t H o s t ( ) ;   / / h o s t         f o r   ( S t r i n g   w h i t e D o m a i n : w h i t e L i s t )         {                 i f   ( i n p u t D o m a i n . e n d s W i t h ( " . " + w h i t e D o m a i n ) )   / / w w w . h u a w e i . c o m             a p p . h i c l o u d . c o m                         r e t u r n   t r u e ;         }         r e t u r n     f a l s e ; } p a c k a g e   r e b e y o n d . n e t . m y a p p l i c a t i o n ; p u b l i c   c l a s s   M a i n A c t i v i t y   e x t e n d s   A p p C o m p a t A c t i v i t y   {         @ O v e r r i d e         p r o t e c t e d   v o i d   o n C r e a t e ( B u n d l e   s a v e d I n s t a n c e S t a t e )   {                 s u p e r . o n C r e a t e ( s a v e d I n s t a n c e S t a t e ) ;                 s e t C o n t e n t V i e w ( R . l a y o u t . a c t i v i t y _ m a i n ) ;                 W e b V i e w   w e b V i e w   =   ( W e b V i e w )   f i n d V i e w B y I d ( R . i d . m y W e b v i e w ) ;                 w e b V i e w . g e t S e t t i n g s ( ) . s e t J a v a S c r i p t E n a b l e d ( t r u e ) ;                 w e b V i e w . s e t W e b V i e w C l i e n t ( n e w   W e b V i e w C l i e n t ( ) ) ;                 w e b V i e w . s e t W e b C h r o m e C l i e n t ( n e w   W e b C h r o m e C l i e n t ( ) ) ;                 S t r i n g   i n p u t U r l = " j a v a s c r i p t : a l e r t ( ' h e l l o   w o r l d ' ) ; " ;                 w e b V i e w . l o a d U r l ( i n p u t U r l ) ;         } }
w e b v i e w l o a d U r l J a v a S c r i p t U R L j a v a . n e t . U R I J a v a S c r i p t : / / w w w . h u a w e i . c o m / % 0 d % 0 a w i n d o w . l o c a t i o n . h r e f = h t t p : / / w w w . r e b e y o n d . n e t / p o c . h t m U R L g e t H o s t w w w . h u a w e i . c o m w e b v i e w J a v a S c r i p t : / / j a v a . n e t . U R I w w w . h u a w e i . c o m h o s t / / J a v a s c r i p t % 0 d % 0 a w i n d o w . l o c a t i o n . h r e f = h t t p : / / w w w . r e b e y o n d . n e t / p o c . h t m p o c g e t T o k e n / / w w w . h u a w e i . c o m / w i n d o w . l o c a t i o n . h r e f = ' h t t p : / / w w w . r e b e y o n d . n e t / p o c . h t m '
R o u n d   7 A : 7 l o a d U r l p r i v a t e   s t a t i c   b o o l e a n   c h e c k D o m a i n ( S t r i n g   i n p u t U r l )   t h r o w s     U R I S y n t a x E x c e p t i o n   {         i f   ( ! i n p u t U r l . s t a r t s W i t h ( " h t t p : / / " ) & & ! i n p u t U r l . s t a r t s W i t h ( " h t t p s : / / " ) )         {                 r e t u r n   f a l s e ;         }         S t r i n g [ ]   w h i t e L i s t = n e w   S t r i n g [ ] { " h u a w e i . c o m " , " h i c l o u d . c o m " } ;         j a v a . n e t . U R I   u r l = n e w   j a v a . n e t . U R I ( i n p u t U r l ) ;         S t r i n g   i n p u t D o m a i n = u r l . g e t H o s t ( ) ;   / / h o s t         f o r   ( S t r i n g   w h i t e D o m a i n : w h i t e L i s t )         {                 i f   ( i n p u t D o m a i n . e n d s W i t h ( " . " + w h i t e D o m a i n ) )   / / w w w . h u a w e i . c o m             a p p . h i c l o u d . c o m                         r e t u r n   t r u e ;         }         r e t u r n     f a l s e ; }
U R L U R L U R L S S O U R L 3 0 2 L o c a t i o n U R L U R L d e m o   A P P l o g h t t p s : / / w w w . h u a w e i . c o m / r e d i r e c t . p h p ? u r l = h t t p : / / l o g i n . h u a w e i . c o m h t t p s : / / w w w . h u a w e i . c o m / r e d i r e c t . p h p ? u r l = h t t p s : / / w w w . r e b e y o n d . n e t / p o c . h t m p a c k a g e   r e b e y o n d . n e t . m y a p p l i c a t i o n ; i m p o r t   a n d r o i d . s u p p o r t . v 7 . a p p . A p p C o m p a t A c t i v i t y ; i m p o r t   a n d r o i d . o s . B u n d l e ; i m p o r t   a n d r o i d . u t i l . L o g ; i m p o r t   a n d r o i d . w e b k i t . J a v a s c r i p t I n t e r f a c e ; i m p o r t   a n d r o i d . w e b k i t . W e b C h r o m e C l i e n t ; i m p o r t   a n d r o i d . w e b k i t . W e b V i e w ; i m p o r t   a n d r o i d . w e b k i t . W e b V i e w C l i e n t ; i m p o r t   a n d r o i d . w i d g e t . B u t t o n ; i m p o r t   j a v a . n e t . M a l f o r m e d U R L E x c e p t i o n ; i m p o r t   j a v a . n e t . U R I S y n t a x E x c e p t i o n ; i m p o r t   j a v a . n e t . U R L ; p u b l i c   c l a s s   M a i n A c t i v i t y   e x t e n d s   A p p C o m p a t A c t i v i t y   {         c l a s s   J s O b j e c t   {                 @ J a v a s c r i p t I n t e r f a c e                 p u b l i c   S t r i n g   g e t T o k e n ( )   {                         L o g . e ( " r e b e y o n d " , " i   a m   i n   g e t T o k e n " ) ;                         r e t u r n   " { " t o k e n " : " 1 2 3 4 5 6 7 8 9 0 a b c d e f g " } " ;                 }         }         @ O v e r r i d e         p r o t e c t e d   v o i d   o n C r e a t e ( B u n d l e   s a v e d I n s t a n c e S t a t e )   {                 s u p e r . o n C r e a t e ( s a v e d I n s t a n c e S t a t e ) ;                 s e t C o n t e n t V i e w ( R . l a y o u t . a c t i v i t y _ m a i n ) ;                 W e b V i e w   w e b V i e w   =   ( W e b V i e w )   f i n d V i e w B y I d ( R . i d . m y W e b v i e w ) ;                 w e b V i e w . g e t S e t t i n g s ( ) . s e t J a v a S c r i p t E n a b l e d ( t r u e ) ;                 w e b V i e w . s e t W e b V i e w C l i e n t ( n e w   W e b V i e w C l i e n t ( ) ) ;                 w e b V i e w . s e t W e b C h r o m e C l i e n t ( n e w   W e b C h r o m e C l i e n t ( ) ) ;                 w e b V i e w . a d d J a v a s c r i p t I n t e r f a c e ( n e w   J s O b j e c t ( ) , " m y O b j " ) ;                 S t r i n g   i n p u t U r l = " h t t p s : / / w w w . h u a w e i . c o m / r e d i r e c t . p h p ? u r l = h t t p s : / / w w w . r e b e y o n d . n e t / p o c . h t m " ;                 t r y   {                         i f   ( c h e c k D o m a i n ( i n p u t U r l ) )                         {                                 L o g . e ( " r e b e y o n d " , " i   a m   a   w h i t e   d o m a i n " ) ;                                 w e b V i e w . l o a d U r l ( i n p u t U r l ) ;                         }                 }   c a t c h   ( U R I S y n t a x E x c e p t i o n   e )   {                         e . p r i n t S t a c k T r a c e ( ) ;                 }         }         p r i v a t e   s t a t i c   b o o l e a n   c h e c k D o m a i n ( S t r i n g   i n p u t U r l )   t h r o w s     U R I S y n t a x E x c e p t i o n   {                 i f   ( ! i n p u t U r l . s t a r t s W i t h ( " h t t p : / / " ) & & ! i n p u t U r l . s t a r t s W i t h ( " h t t p s : / / " ) )                 {                         r e t u r n   f a l s e ;                 }                 S t r i n g [ ]   w h i t e L i s t = n e w   S t r i n g [ ] { " h u a w e i . c o m " , " h i c l o u d . c o m " } ;                 j a v a . n e t . U R I   u r l = n e w   j a v a . n e t . U R I ( i n p u t U r l ) ;                 S t r i n g   i n p u t D o m a i n = u r l . g e t H o s t ( ) ;   / / h o s t                 f o r   ( S t r i n g   w h i t e D o m a i n : w h i t e L i s t )                 {
c h e c k D o m a i n t r u e J a v a s c r i p t I n t e r f a c e   g e t T o k e n A P P   U R L W e b v i e w h t t p s : / / w w w . h u a w e i . c o m / r e d i r e c t . p h p ? u r l = h t t p s : / / w w w . r e b e y o n d . n e t / p o c . h t m l o a d U r l h t t p s : / / w w w . h u a w e i . c o m / r e d i r e c t . p h p ? u r l = h t t p s : / / w w w . r e b e y o n d . n e t / p o c . h t m h t t p s : / / w w w . r e b e y o n d . n e t / p o c . h t m l o a d U r l l o a d U r l U R L w e b v i e w s h o u l d O v e r r i d e U r l L o a d i n g w e b v i e w u r l                 {                         i f   ( i n p u t D o m a i n . e n d s W i t h ( " . " + w h i t e D o m a i n ) )   / / w w w . h u a w e i . c o m             a p p . h i c l o u d . c o m                                 r e t u r n   t r u e ;                 }                 r e t u r n     f a l s e ;         } } p a c k a g e   r e b e y o n d . n e t . m y a p p l i c a t i o n ; i m p o r t   a n d r o i d . s u p p o r t . v 7 . a p p . A p p C o m p a t A c t i v i t y ; i m p o r t   a n d r o i d . o s . B u n d l e ; i m p o r t   a n d r o i d . u t i l . L o g ; i m p o r t   a n d r o i d . w e b k i t . J a v a s c r i p t I n t e r f a c e ; i m p o r t   a n d r o i d . w e b k i t . W e b C h r o m e C l i e n t ; i m p o r t   a n d r o i d . w e b k i t . W e b R e s o u r c e R e q u e s t ; i m p o r t   a n d r o i d . w e b k i t . W e b V i e w ; i m p o r t   a n d r o i d . w e b k i t . W e b V i e w C l i e n t ; i m p o r t   a n d r o i d . w i d g e t . B u t t o n ; i m p o r t   j a v a . n e t . M a l f o r m e d U R L E x c e p t i o n ; i m p o r t   j a v a . n e t . U R I S y n t a x E x c e p t i o n ; i m p o r t   j a v a . n e t . U R L ; p u b l i c   c l a s s   M a i n A c t i v i t y   e x t e n d s   A p p C o m p a t A c t i v i t y   {         c l a s s   J s O b j e c t   {                 @ J a v a s c r i p t I n t e r f a c e                 p u b l i c   S t r i n g   g e t T o k e n ( )   {                         L o g . e ( " r e b e y o n d " , " i   a m   i n   g e t T o k e n " ) ;                         r e t u r n   " { " t o k e n " : " 1 2 3 4 5 6 7 8 9 0 a b c d e f g " } " ;                 }         }         @ O v e r r i d e         p r o t e c t e d   v o i d   o n C r e a t e ( B u n d l e   s a v e d I n s t a n c e S t a t e )   {                 s u p e r . o n C r e a t e ( s a v e d I n s t a n c e S t a t e ) ;                 s e t C o n t e n t V i e w ( R . l a y o u t . a c t i v i t y _ m a i n ) ;                 W e b V i e w   w e b V i e w   =   ( W e b V i e w )   f i n d V i e w B y I d ( R . i d . m y W e b v i e w ) ;                 w e b V i e w . g e t S e t t i n g s ( ) . s e t J a v a S c r i p t E n a b l e d ( t r u e ) ;                 w e b V i e w . s e t W e b V i e w C l i e n t ( n e w   W e b V i e w C l i e n t ( ) {                         @ O v e r r i d e                         p u b l i c   b o o l e a n   s h o u l d O v e r r i d e U r l L o a d i n g ( W e b V i e w   v i e w ,   W e b R e s o u r c e R e q u e s t   r e q u e s t )   {                                 L o g . e ( " r e b e y o n d " , " s t a r t   t o   s h o u l d O v e r r i d e U r l L o a d i n g   u r l : " + r e q u e s t . g e t U r l ( ) ) ;                                 r e t u r n   s u p e r . s h o u l d O v e r r i d e U r l L o a d i n g ( v i e w ,   r e q u e s t ) ;                         }                 } ) ;                 w e b V i e w . s e t W e b C h r o m e C l i e n t ( n e w   W e b C h r o m e C l i e n t ( ) ) ;                 w e b V i e w . a d d J a v a s c r i p t I n t e r f a c e ( n e w   J s O b j e c t ( ) , " m y O b j " ) ;                 S t r i n g   i n p u t U r l = " h t t p s : / / w w w . h u a w e i . c o m / r e d i r e c t . p h p ? u r l = h t t p s : / / w w w . r e b e y o n d . n e t / p o c . h t m " ;                 t r y   {                         i f   ( c h e c k D o m a i n ( i n p u t U r l ) )                         {                                 L o g . e ( " r e b e y o n d " , " s t a r t   t o   l o a d U r l : " + i n p u t U r l ) ;                                 L o g . e ( " r e b e y o n d " , " i   a m   a   w h i t e   d o m a i n " ) ;                                 w e b V i e w . l o a d U r l ( i n p u t U r l ) ;                         }                 }   c a t c h   ( U R I S y n t a x E x c e p t i o n   e )   {                         e . p r i n t S t a c k T r a c e ( ) ;                 }         }         p r i v a t e   s t a t i c   b o o l e a n   c h e c k D o m a i n ( S t r i n g   i n p u t U r l )   t h r o w s     U R I S y n t a x E x c e p t i o n   {                 i f   ( ! i n p u t U r l . s t a r t s W i t h ( " h t t p : / / " ) & & ! i n p u t U r l . s t a r t s W i t h ( " h t t p s : / / " ) )
A P P l o g c a t w e b v i e w s h o u l d O v e r r i d e U r l L o a d i n g l o a d U r l s h o u l d O v e r r i d e U r l L o a d i n g                 i f   ( ! i n p u t U r l . s t a r t s W i t h ( " h t t p : / / " ) & & ! i n p u t U r l . s t a r t s W i t h ( " h t t p s : / / " ) )                 {                         r e t u r n   f a l s e ;                 }                 S t r i n g [ ]   w h i t e L i s t = n e w   S t r i n g [ ] { " h u a w e i . c o m " , " h i c l o u d . c o m " } ;                 j a v a . n e t . U R I   u r l = n e w   j a v a . n e t . U R I ( i n p u t U r l ) ;                 S t r i n g   i n p u t D o m a i n = u r l . g e t H o s t ( ) ;   / / h o s t                 f o r   ( S t r i n g   w h i t e D o m a i n : w h i t e L i s t )                 {                         i f   ( i n p u t D o m a i n . e n d s W i t h ( " . " + w h i t e D o m a i n ) )   / / w w w . h u a w e i . c o m             a p p . h i c l o u d . c o m                                 r e t u r n   t r u e ;                 }                 r e t u r n     f a l s e ;         } } p a c k a g e   r e b e y o n d . n e t . m y a p p l i c a t i o n ; p u b l i c   c l a s s   M a i n A c t i v i t y   e x t e n d s   A p p C o m p a t A c t i v i t y   {         c l a s s   J s O b j e c t   {                 @ J a v a s c r i p t I n t e r f a c e                 p u b l i c   S t r i n g   g e t T o k e n ( )   {                         L o g . e ( " r e b e y o n d " , " i   a m   i n   g e t T o k e n " ) ;                         r e t u r n   " { " t o k e n " : " 1 2 3 4 5 6 7 8 9 0 a b c d e f g " } " ;                 }         }         @ O v e r r i d e         p r o t e c t e d   v o i d   o n C r e a t e ( B u n d l e   s a v e d I n s t a n c e S t a t e )   {                 s u p e r . o n C r e a t e ( s a v e d I n s t a n c e S t a t e ) ;                 s e t C o n t e n t V i e w ( R . l a y o u t . a c t i v i t y _ m a i n ) ;                 W e b V i e w   w e b V i e w   =   ( W e b V i e w )   f i n d V i e w B y I d ( R . i d . m y W e b v i e w ) ;                 w e b V i e w . g e t S e t t i n g s ( ) . s e t J a v a S c r i p t E n a b l e d ( t r u e ) ;                 w e b V i e w . s e t W e b V i e w C l i e n t ( n e w   W e b V i e w C l i e n t ( ) {                         @ O v e r r i d e                         p u b l i c   b o o l e a n   s h o u l d O v e r r i d e U r l L o a d i n g ( W e b V i e w   v i e w ,   W e b R e s o u r c e R e q u e s t   r e q u e s t )   {                                 L o g . e ( " r e b e y o n d " , " s t a r t   t o   s h o u l d O v e r r i d e U r l L o a d i n g   u r l : " + r e q u e s t . g e t U r l ( ) ) ;                                 S t r i n g   i n p u t U r l = r e q u e s t . g e t U r l ( ) . t o S t r i n g ( ) ;                                 i f   ( c h e c k D o m a i n ( i n p u t U r l ) )                                 {                                         r e t u r n   f a l s e ;   / /                                 }                                 r e t u r n   t r u e ;   / /                         }                 } ) ;                 w e b V i e w . s e t W e b C h r o m e C l i e n t ( n e w   W e b C h r o m e C l i e n t ( ) ) ;                 w e b V i e w . a d d J a v a s c r i p t I n t e r f a c e ( n e w   J s O b j e c t ( ) , " m y O b j " ) ;                 S t r i n g   i n p u t U r l = " h t t p : / / w w w . h u a w e i . c o m / r e d i r e c t . p h p ? u r l = h t t p s : / / w w w . r e b e y o n d . n e t / p o c . h t m " ;                         i f   ( c h e c k D o m a i n ( i n p u t U r l ) )                         {                                 L o g . e ( " r e b e y o n d " , " s t a r t   t o   l o a d U r l : " + i n p u t U r l ) ;                                 L o g . e ( " r e b e y o n d " , " i   a m   a   w h i t e   d o m a i n " ) ;                                 w e b V i e w . l o a d U r l ( i n p u t U r l ) ;                         }         }         p r i v a t e   s t a t i c   b o o l e a n   c h e c k D o m a i n ( S t r i n g   i n p u t U r l )     {                 i f   ( ! i n p u t U r l . s t a r t s W i t h ( " h t t p : / / " ) & & ! i n p u t U r l . s t a r t s W i t h ( " h t t p s : / / " ) )                 {                         r e t u r n   f a l s e ;                 }                 S t r i n g [ ]   w h i t e L i s t = n e w   S t r i n g [ ] { " h u a w e i . c o m " , " h i c l o u d . c o m " } ;                 j a v a . n e t . U R I   u r l =   n u l l ;                 t r y   {                         u r l   =   n e w   j a v a . n e t . U R I ( i n p u t U r l ) ;                 }   c a t c h   ( U R I S y n t a x E x c e p t i o n   e )   {                         r e t u r n   f a l s e ;                 }                 S t r i n g   i n p u t D o m a i n = u r l . g e t H o s t ( ) ;   / / h o s t                 f o r   ( S t r i n g   w h i t e D o m a i n : w h i t e L i s t )                 {                         i f   ( i n p u t D o m a i n . e n d s W i t h ( " . " + w h i t e D o m a i n ) )   / / w w w . h u a w e i . c o m             a p p . h i c l o u d . c o m                                 r e t u r n   t r u e ;
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则