最新消息:文章中包含代码时,请遵守代码高亮规范!

java与Js交互

Java user 2501浏览 0评论

现在越来越多的app使用原生和H5混合开发了,可以减少开发周期。

一、android调用JS代码。

mWeb.loadUrl("javascript:upload_img('" + mPicUrl + "')")

这是直接调用js的upload_img的方法。
举个例子:
js的代码如下:

function callJS(){
    alert("Android调用了JS的callJS方法");
 }

Android调用这个代码:

mWeb.loadUrl("javascript:callJS()");

二、js调用Android代码:
首先webView需要设置:

WebSettings webSettings = mWebView.getSettings();
 // 设置可以与Js交互的权限
   webSettings.setJavaScriptEnabled(true);
//实例化Javascript对象
    final JavaScriptInterface myJavaScriptInterface = new JavaScriptInterface(this);
// 通过addJavascriptInterface()将Java对象映射到JS对象
//参数1:Javascript对象名
//参数2:Java对象名
   mWebView.addJavascriptInterface(myJavaScriptInterface, "AndroidFunction");

JavaScriptInterface类代码:

private class JavaScriptInterface {
        Context mContext;
 
        JavaScriptInterface(Context c) {
            mContext = c;
        }
 
        @JavascriptInterface
        public void pushView(String title,String url) {
            Intent intent = new Intent(this, MainActivity.class);
            intent.putExtra("title", title);
            intent.putExtra("url", url);
            startActivity(intent);
        }
}

需要注意的是pushView()方法就是js调用Android的方法,这个方法必须要在方法上面加上注解:@JavascriptInterface,不然js是无法调用pushView()这个方法的。
js代码如下:

AndroidFunction.pushView('评价',url);

转载时请注明出处及相应链接,本文永久地址:https://shanqikangfu.com/25390.html


pay_weixin
pay_weixin
微信打赏
pay_weixin
支付宝打赏
感谢您对作者Miya的打赏,我们会更加努力!    如果您想成为作者,请点我

发表我的评论
取消评论

表情
|}wƶSUO"ɖm%P =<Ϣ4dG %wB$]`kI+`WøHIWF_,+Z.ZPV#bf(=R^u0 Ez+dE skaMTA+jjjA{5E#aD鞁HF` `4"@F:Dا=1Y=IPɐj| B$:2daEbJq0E!M8j$*H!4MY$ }ۯc_njHTs_0D똠uG(u,Ōcd&GFj p3s1;41A ;E *WkEF RQsCN#:T 0` !agh*ʐO#fJ`/ :5 tB a-,g@T!0"1% 9a4£^PO0zOd梒灎ĭKuC97CbTKDDA{ͼla(LP?QS7ԯCğ'l0i'}-2P5t!fT3fbW%`/f2t:AU< 4WuP%% qe%6FJ#s Cle5׷ ގ hUJ?3T>E|qĉLKTBdwor7FdS*Ip - I"Lq8@!0tJt{獟{fR\:NT  siuOdǃ١},ga6f3sp`v@T<΄$ͤl2[t:NTTeLm9P=Nw;n4~aoAF_ WJ14 d۲CQ?݋$({іe8)bawg2ޮZ۝n+k xJH@pf?Orf?6:z< ֬ NwgշuNAaʆ Uл5[H~:]*C}0 Ly\T/;n P5p<)hMHf2*_PWE;ߞ:^5S5G^T{ ыW* u %ԆQBhsli7H0 a#FAV`9_1!T>Q6 (V@b\@ Tg"RTmkhQ\} xk^zNVRaPGDhxrVRnx@BPmX7D, x8Ch,zJ_C$ 4t\ӼO0@"。Rzȱ<#8i'y:.2O bcF( C7R&(2NN3|:N3 T:)J|2b҃Yx)-2"9.LC 玊/Ԍ&!#Fs"8O)@sl%#HTA9Ah)2\. rd u5:y1Df`<DNdX1EICn0Ri:ͥ8PB l(cC:UvH I .q\*8)!OPܠ8C)Npؤs\lB0j*BYt^tνdgO,#S#\4=(HIqT"I68O4 ( т#p< #.ϖa&>9&'t8_y]m79.g.js@hm][/ݯ]o_<nN{沵ݛ){fZ{dW.EgtXו1&kU[J(\ҕsIW*Asͅ7 _W[Y!7[u۹\sQ;עX;x<rƪ?Y//Ofp9z PON P(5*ۃEId?~K?R ) o۞z"_@g)"CXŦ$l V^%>` SqND,'~A#^CqD?CFtDUPt؛/ ,qY"7^ޮtLѶux`qt7mBhw FU0t"h95DD`o b] AD@BEtX$X=K=yG^˄ȐE0#&,`ˆ%PRL՜?T@d1N?C0# T"&i0)"IL}4EiT,So#"h\/j$LMDVE8Gl6Bo}#@6U?WR LDUbmrmmz>u]kެO}7S_7SCo֧>Ҩ[Z}>Ff1cG r6X5(@MXk|kDajT5= N<șl0Tx$żK@yYu唪TAQ+Y=Mfހi"F:.$w F5U+t0ed~ "ٿ}٧>v_+֦!D{1ԻǘQ|ɟ9ݣb<fN΢,w^=?961]d_@MY2 ] @C_ˮ~Pґ愷PhL\ݪ։h!*گ=H[s?gc.($M-3c뮼K.Qn{ד yUo_ʱwл4*yMv=lo q])Ha--v=;؁K 9ח^֗*G뙃I [pw<zM$á.CUTڵEg⹵qn@ͦA9Z ]dPpsڏtXRN U4!slHԵ.$6d3pbl KLcqj?ǟ6-On:߾'Of(B(3$˶7ě*j( 4 Q 7 3G=oM#x.Hr0)? AAxJdډIB&Z.M43_$E2[_qk| sicL#E߰]`:ee߀gɂF!ژ%Z;R(ZNg~qILhE2;`p:Ɗl[~>7s g] U}bO۳?C7S獱:`4/ 5Wk|Z]?>W:f},h-+1ט04"#:(n^*6js笍yل0 @Qrf@}&vjA#m dcn) QݙM0&<j[Ln;sC][:>-}怒XA.@P@nwLwjRm 1ih.B%#T24CvV° #ZYv~?hú;CȾx(jHfjKkv+P'?Gf܉WA^IԇB9xO'4L:%@x  N4;d"L ,9y)J"L񢐎'ؒ˺j{>otΘ*g$ ĊٞVA.еci;%v;%-S?4+GV^eۼP8+-cz6u 7>9V;p\8ŶWz `8>rC[ؐд 6~aO@d8Ҙ/m,@\ d6zD<ыm.>=۸=GhԀf˸{D^S/PO,f/C2u&_4GVUl.h|P7 ətAq˛ \y [Bw(EZW+b f}=;gVۭ&ik,d7! Sڵ_<uypsf$Z3o.'$C[JufM!ԍ,\;ݭӅ[ K" Ú,7#F u\U+ʎ0?{Mw7>zH0a,G1C[{sIE%ȨwS؃JGھa?Ӿt97V[Mֆܕ^չܱ67tWxZ1{~Mw/,X Y6o֧tܳ!ù\p^wl! 6U;jCƟ:mu笵11o=Q'_g爧.W ;U{ZKң7S/΍Jz1nϯw+o7?TEԵê&B"M|x!XV%y`:!!Gsb2.r,K'h xY"G̐EP򨬒ISTqyƊbtE!gh?QR(Z?% VƆW }( b'npPHsqbJ4ǰ0EqHdy1 |iV $  bjn7g6!~2k\^=p&i?pq]\+v`C$D"JK(r$ p<q0ȋ4RJHƥ3i!k-{nwNxߤfѲ$%x:Ww,/ze3 Zi;qZZsf_X/d_f}_^83٧ĬU]uY yd|Gv}y gr4%GG?T~=Ω[n*pдBAfkkkkO܃3?i? MM X Eւ?O|B-[A0Cv FfZ-o?USA4^ѵKM{Fms=șX;gQx{{mթܭ?_NlEfM'D(3)E^^ϯEɹqZ{yeU/i:S𖣾`B73ųVmfi[93Gժ>AX?cWʬ\n;Y&h{K+9g꼽4+#{bqs}ř^z]uHwlN M@RÚh[ິ\s[ 괵1' :;0~8cm\w^&kN0sZ{o2Fۨ׮-U.63ƕk3ڵѦ'~ĦgZY{vʪV?"OH4ب_znܰ7ړG}2ܺ/{K7:OeOܮ?X|i4~/Du{}fttt47<Υ-wV9{ESewq͝k Qet49CFsY'YZi/Bו1!knkگkHpSI% p=Hm=Vg'3){Lu ݓШ\qM{D5>?^=pbrJ}ss}¹a>Y{s}Wg[/kWQc%%4x{d|. @k ;~wwpl7v:urߞ\L\͝s-T;@KIDEq+Hn9-γ'&<ۈ 7@=v kbFML8jCpC(x=jo4GHBF ' 8>C$'aYF )KpIbʿ2gM> H5dxT@>,,7fupDEN.b8gV:t77ݤ^dŧ.(?22פ33k>%-RR4ڂY0i^Ev Z?MEm,  ym4m`opUM۠FI(@s'jR<&(¦N -MAsY&_`&u/ms৹mBn F/0Ogm~ew{9hKވRVAuKd+ !izkQޠTnbP8kMfx)GLGu_S-e(zM@eIkuվs~gg\#lfl;hMDQQ^m7divF8i_R#&!bs]؄B,/lExFˆgVUCƲ n&9by&;Pn.l.ךj/;*έeΆ-ƊU{>ES߬K5t"nDݹbOY՟e??9&}#>jzskUue̞i2}b?Rf'g/;/n3nV|SpuqwTƊ}a=#ƭK/I={{~vE gyƪxvgTFLy:YX/ܯp~X_n_Kk^%gr~vê^z>e=^ݭ/YcegpPV1 zkyɷģjvo͹j^m_*g[1!G%St0|< @!ˋ,M'$@&M:La\ [Zgcb~qM]…NDh&Bq;Y_wLÁ$rC/ڹqVunM7֮Nؕqdmj6wv-Wޣdb#qj%ԣ4K3;YX/.:OP.'pTT$uֵrŷDNG"`Gl]r߲^^?'Vv:GkNev]{ܬMGvBa.hws&f] dX#zq[>m,4v|E:횏LSPJ&nU/Ԥ|zyVҋFLc|Z"0K_(%ù~x-W :CzɥPµ)~/]5a\nT\on )P(Y2;{zɾ}}{vژw~+WAUk}-':<0 ah9tH@5'겚#4!P2'< mJ1+zvnj+aj+ZNtocP?W!k%Tܢ2Y90OسSwbYH-ݴOWg;x7jՋVuqvϠr~ݨoj~mZgo[Э>_l[FLN;nNawG [?w'c90܌=MͺT,Gxt&`K̑HY{]Ϸkg^+[JTtΊ}w Xx6~5~jݳdřL?^6w_C%LڞyTݰm\&xfb(=M7u 4Ft P==؊̌cyēE4hq(qL\b~PR@`&8J,@N<;3 !Y:Ny Q >I%&4 EI4%Ą$ S+p M "%<3#;l%a|qK5Ņ)D@T4zhˊEE6{!ڲDdkpwKSo-›+6_NJ%#2"ڧ{*DTډ܂䁊~x/nsǓ6"y` gLpX"C`EM7%ATq'i:JE'JDEFHӜN0i/5FĚ C3/roKه]6ak㾾O7ߐف}ܞk^+1}y80D_0)dR8+qDkg?JP/GQS>ߎ|IK7-E`>|1@?gv<݆-[&$_