`

Android targetSdkVersion 17 @JavascriptInterface

 
阅读更多

转于:http://blog.csdn.net/zzf112/article/details/19546859

 

--------------------------------------------------------------------------------------------

 

targetSdkVersion 是设置希望的SDK版本,如果设置了此属性,那么在程序执行时,如果目标设备的API版本正好等于此数值,他会告诉Android平台:此程序在此版本已经经过充分测,没有问题。不必为此程序开启兼容性检查判断的工作了。
也就是说,如果targetSdkVersion与目标设备的API版本相同时,运行效率可能会高一些。 
但是,这个设置仅仅是一个声明、一个通知,不会有太实质的作用,
比如说,使用了targetSdkVersion这个SDK版本中的一个特性,但是这个特性在低版本中是不支持的,那么在低版本的API设备上运行程序时,可能会报错:java.lang.VerifyError。也就是说,此属性不会帮你解决兼容性的测试问题。

 

js调用java的时候,如果设置了targetSdkVersion,当targetSdkVersion<17时没问题,targetSdkVersion>=17时不成功

 

如果您在编写HTML5应用,需要在JS代码中访问Java中的函数,则您会用到WebView的addJavascriptInterface()函数。因为安全问题,在Android4.2中(如果应用的android:targetSdkVersion数值为17+)JS只能访问带有 @JavascriptInterface注解的Java函数。

之前,任何Public的函数都可以在JS代码中访问,而Java对象继承关系会导致很多Public的函数都可以在JS中访问,其中一个重要的函数就是  getClass()。然后JS可以通过反射来访问其他一些内容。通过引入 @JavascriptInterface注解,则在JS中只能访问 @JavascriptInterface注解的函数。这样就可以增强安全性。

如果您的应用android:targetSdkVersion数值为17或者大于17记得添加 @JavascriptInterface 注解。

分享到:
评论

相关推荐

    安卓addJavascriptInterface实现例子小demo

    2. **@JavascriptInterface注解**:在API 17及以上版本,为了安全原因,只有标记了`@JavascriptInterface`的方法才能被JavaScript调用。确保所有要暴露给JavaScript的方法都添加了这个注解。 3. **混淆问题**:如果...

    android与js基本交互

    1. **通过JavaScriptInterface**: 上述`addJavascriptInterface`创建的Java对象,其方法可以在JavaScript中通过`window.android.yourMethod()`的形式调用。 2. **注入JavaScript代码**: 通过`WebView.loadUrl(...

    android js

    @android.webkit.JavascriptInterface ; } ``` 这将防止混淆器处理标记为`@JavascriptInterface`的方法。 三、addJavascriptInterface使用注意事项 1. **安全风险**: 默认情况下,`addJavascriptInterface`允许...

    Javascript和android原生互调,代码简洁易懂,能运行

    2. JavaScriptInterface:Android通过Java代码定义一个`@JavascriptInterface`注解的接口,该接口的方法可以在JavaScript中被调用,实现了Android原生代码向JavaScript的回调。 3. `addJavascriptInterface()`: 这...

    Android与h5界面互调

    为了安全性和防止XSS攻击,Android还提供了`@JavascriptInterface`注解,用于标记可以在JavaScript中直接调用的Java方法。这些方法将在JavaScript中暴露为对象的属性。 ```java public class JsBridge { @...

    Android应用源码之android通过js调用安卓系统功能.zip

    WebView是Android SDK提供的一种用于显示网页内容的视图组件。它可以加载本地或远程HTML页面,并支持JavaScript执行。在Android应用中使用WebView,可以将网页内容嵌入到应用程序中,同时保持应用的原生体验。 二、...

    Android高级应用源码-Android调用JavaScript.zip

    2. JavaScriptInterface:为了安全性和防止跨域攻击,Android提供了`@JavascriptInterface`注解,只有标记了该注解的方法才能在JavaScript中被调用。这样可以避免恶意JS代码对Android应用造成影响。 3. ...

    Android 和 javascript 交互 Android混合开发之WebView与Javascript交互

    @android.webkit.JavascriptInterface public void showToast(String message) { Toast.makeText(context, message, Toast.LENGTH_SHORT).show(); } } ``` 在WebView中注册这个接口: ```java webView....

    Android使用Html实现登录功能——重点掌握Webview js的使用

    `@JavascriptInterface`注解用于确保在安全环境中运行,而`@RequiresApi(api = Build.VERSION_CODES.KITKAT)`是因为`@JavascriptInterface`自API 17(KitKat)开始引入。 总结一下,通过以上步骤,我们可以在...

    Android关于HTML页面与Native方法相互调用

    - 自Android 4.2(API级别17)起,必须在接口类上使用`@JavascriptInterface`,否则在运行时会抛出异常。 - 谨慎处理从JavaScript传递的数据,因为它们可能来自不可信的源。 七、`JS_NativeDemo`示例 "JS_...

    android中WebView回调js的方法

    由于JavaScript可以调用注册的Java方法,为了防止XSS(跨站脚本攻击)和其他安全问题,从Android 4.2(API级别17)开始,所有暴露给JavaScript的接口都需要添加`@JavascriptInterface`注解。同时,如果是在Android ...

    android与js的通信

    因此,从Android 4.2(API级别17)开始,所有`@JavascriptInterface`方法默认都是只读的。如果需要调用修改Android状态的方法,必须在应用的`AndroidManifest.xml`中添加`android.webkit.WebView`的`ALLOW_FILE_...

    xe7android手机调用javascript

    3. 对于`addJavascriptInterface`,从Android 4.2(API 17)开始,如果没有`@JavascriptInterface`注解,JavaScript调用Java方法会抛出异常。 四、性能优化 1. 使用`shouldInterceptRequest()`:此方法允许你在`...

    android 通过webview 取源码

    但是,从Android 4.4(KitKat)开始,为了提高安全性,引入了`addJavascriptInterface`的`@JavascriptInterface`注解,这个注解使得只有带有该注解的方法可以从JavaScript中调用。因此,如果我们不使用这个注解,4.4...

    Js交互实例

    1. `@JavascriptInterface`:在JS中调用Android方法之前,必须在Android端创建一个Java接口并注册到WebView。每个需要暴露给JS的方法都应加上`@JavascriptInterface`注解,以确保在安全沙盒中运行。 2. `WebView....

    android webview与js交互简单demo

    - @JavascriptInterface注解:自API 17起,为防止XSS攻击,所有从JavaScript调用的Java方法必须添加此注解。 - CORS跨域问题:如果加载的网页不在同一源下,需要开启WebView的CORS支持,通过WebSettings的...

    WebView与Js交互

    WebView是Android SDK中的一个类,它继承自View,主要用于在Android应用中展示网页内容。WebView不仅能够加载HTTP/HTTPS URL,还可以加载本地的HTML文件。通过设置WebViewClient和WebChromeClient,我们可以定制加载...

    android原生与js互调

    在Android开发中,有时我们需要实现Android原生代码与JavaScript之间的交互,这主要涉及到Webview组件的使用和两者之间的通信机制。Webview是一个可以加载和显示网页的控件,它不仅能够展示HTML内容,还能让我们通过...

    android与js交互

    2. JavaScriptInterface:为了让JavaScript能够调用Android的Java方法,我们需要创建一个实现了`@JavascriptInterface`注解的类。这个接口定义了可供JavaScript访问的方法,系统会自动处理安全问题,防止恶意代码的...

Global site tag (gtag.js) - Google Analytics