现在的位置: 首页 > 移动开发 > 正文

js调用android的版本兼容问题

2019年05月07日 移动开发 ⁄ 共 1057字 ⁄ 字号 评论关闭

1,在android API Level 17及以上的版本中,就会出现js调用不了android的代码,这是版本兼容的问题,需要在调用的方法上面加一个注解:@JavascriptInterface,这个注解需要导入一个包:import android.webkit.JavascriptInterface; 

下面是代码:

@Override
02     public void onCreate(Bundle
savedInstanceState) {
03         requestWindowFeature(Window.FEATURE_NO_TITLE);
04         super.onCreate(savedInstanceState);
05         this.loadUrl("file:///android_asset/www/index.html");
06          
07         //给js设置调用的方法
08         this.appView.addJavascriptInterface(new JavaScripdtObject(), "android");
09          
10     }
11     /**
12      *
供js调用的对象方法
13      *
14      *
@author YUJIAN
15      *
16      */
17     public class JavaScripdtObject
{
18  
19         @JavascriptInterface//加入这个注解
20         public void runAndroidMethod(String
str) {
21             Toast.makeText(MainActivity.this"被js调用"+str,
Toast.LENGTH_SHORT)
22                     .show();
23         }
24     }

//js代码

01 function getNode4()
02 {
03     var str
"javascrip木德";
04      
05     //调用android代码
06     window.android.runAndroidMethod(str);
07      
08 }
09 </script>
10  
11 <input
type=
"button" value="获取页面中的节点" onclick="getNode4()" />

抱歉!评论已关闭.