转自:http://blog.csdn.net/windone0109/article/details/5380843
首先在layout文件夹下的xml中 加入Java代码
- <WebView
- android:id="@+id/wv1"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- />
Java代码
- public class jsWebDemo extends Activity {
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- WebView wView = (WebView)findViewById(R.id.wv1);
- ProxyBridge pBridge = new ProxyBridge();
- wView.addJavascriptInterface(pBridge, "AliansBridge");
- WebSettings wSet = wView.getSettings();
- wSet.setJavaScriptEnabled(true);
- wView.loadUrl("file:///android_asset/index.html");
- }
- public class ProxyBridge {
- public int one () {
- return 1;
- }
- }
- }
- public class jsWebDemo extends Activity {
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- WebView wView = (WebView)findViewById(R.id.wv1);
- ProxyBridge pBridge = new ProxyBridge();
- wView.addJavascriptInterface(pBridge, "AliansBridge");
- WebSettings wSet = wView.getSettings();
- wSet.setJavaScriptEnabled(true);
- wView.loadUrl("file:///android_asset/index.html");
- }
- public class ProxyBridge {
- public int one () {
- return 1;
- }
- }
- }
wView.addJavascriptInterface(pBridge, "AliansBridge");
上句代码是实例化一个方法为的是在html中的js中调用,第二个参数则是 实例化方法的别名,如果要使用这个pBridge,则在js中使用的名字就是AliansBridge。
WebSettings wSet = wView.getSettings();
wSet.setJavaScriptEnabled(true);
上面两句就是允许使用js的意思
wView.loadUrl(file:///android_asset/index.html);
就是在asset下放入一个index.html文件,这个文件包含js的代码,注意路径是“///”,这个android_asset不是文件夹的名字是系统自动生成的,其实就是asset文件夹的系统路径。
index.html 内容如下
Java代码
- <html><body>
- <div id="output">Test page.</div>
- <input type="submit" value="change to 1" onclick="document.getElementById('output').innerHTML = AliansBridge.one()" />
- </body></html>
- <html><body>
- <div id="output">Test page.</div>
- <input type="submit" value="change to 1" onclick="document.getElementById('output').innerHTML = AliansBridge.one()" />
- </body></html>
这里要注意 如果你只有一个方法需要被js调用
ProxyBridge pBridge = new ProxyBridge();
wView.addJavascriptInterface(pBridge, "AliansBridge");
如果你需要调用好多个方法呢 这里只要
wView.addJavascriptInterface(this, "AliansBridge");
把整个android程序所在的类 本身实例化传递就可以了
这里呢可以参看附件中的实例riademo
你如果想继续扩展可以参看
http://www.ophonesdn.com/article/show/115
2.上面是javascript调用android的方法,那么android也可以调用js的方法
Java代码
- public class webJsDemo extends Activity {
- /** Called when the activity is first created. */
- private WebView mWebView;
- private Handler mHandler = new Handler();
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- mWebView = (WebView) findViewById(R.id.wv1);
- WebSettings webSettings = mWebView.getSettings();
- webSettings.setSavePassword(false);
- webSettings.setSaveFormData(false);
- webSettings.setJavaScriptEnabled(true);
- webSettings.setSupportZoom(false);
- mWebView.setWebChromeClient(new MyWebChromeClient());
- mWebView.addJavascriptInterface(new DemoJavaScriptInterface(), "demo");
- mWebView.loadUrl("file:///android_asset/demo.html");
- }
- final class DemoJavaScriptInterface {
- DemoJavaScriptInterface() {
- }
- /**
- * This is not called on the UI thread. Post a runnable to invoke
- * loadUrl on the UI thread.
- */
- public void clickOnAndroid() {
- mHandler.post(new Runnable() {
- public void run() {
- mWebView.loadUrl("javascript:wave()");
- }
- });
- }
- }
- /**
- * Provides a hook for calling "alert" from javascript. Useful for
- * debugging your javascript.
- */
- final class MyWebChromeClient extends WebChromeClient {
- @Override
- public boolean onJsAlert(WebView view, String url, String message,
- JsResult result) {
- // TODO Auto-generated method stub
- Log.d("aa", message);
- Log.d("url", url);
- Log.d("result", ""+result);
- result.confirm();
- return super.onJsAlert(view, url, message, result);
- }
- }
- public class webJsDemo extends Activity {
- /** Called when the activity is first created. */
- private WebView mWebView;
- private Handler mHandler = new Handler();
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- mWebView = (WebView) findViewById(R.id.wv1);
- WebSettings webSettings = mWebView.getSettings();
- webSettings.setSavePassword(false);
- webSettings.setSaveFormData(false);
- webSettings.setJavaScriptEnabled(true);
- webSettings.setSupportZoom(false);
- mWebView.setWebChromeClient(new MyWebChromeClient());
- mWebView.addJavascriptInterface(new DemoJavaScriptInterface(), "demo");
- mWebView.loadUrl("file:///android_asset/demo.html");
- }
- final class DemoJavaScriptInterface {
- DemoJavaScriptInterface() {
- }
- /**
- * This is not called on the UI thread. Post a runnable to invoke
- * loadUrl on the UI thread.
- */
- public void clickOnAndroid() {
- mHandler.post(new Runnable() {
- public void run() {
- mWebView.loadUrl("javascript:wave()");
- }
- });
- }
- }
- /**
- * Provides a hook for calling "alert" from javascript. Useful for
- * debugging your javascript.
- */
- final class MyWebChromeClient extends WebChromeClient {
- @Override
- public boolean onJsAlert(WebView view, String url, String message,
- JsResult result) {
- // TODO Auto-generated method stub
- Log.d("aa", message);
- Log.d("url", url);
- Log.d("result", ""+result);
- result.confirm();
- return super.onJsAlert(view, url, message, result);
- }
- }
其中上面的代码 也提到了怎么在android中调试js mWebView.setWebChromeClient(new MyWebChromeClient());
上面的代码来源于别人的实例。
最后还要注意在这个实例中demo.html和两个image应该在同一个文件夹asset下
转自:http://blog.csdn.net/windone0109/article/details/5380941
首先在layout文件夹下的xml中 加入WebView控件
- <WebView
- android:id="@+id/wv1"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- />
再在主文件中输入如下代码
- public class TestDemo extends Activity {
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- WebView wView = (WebView)findViewById(R.id.wv1);
- WebSettings wSet = wView.getSettings();
- wSet.setJavaScriptEnabled(true);
- //wView.loadUrl("file:///android_asset/index.html");
- //wView.loadUrl("content://com.android.htmlfileprovider/sdcard/index.html");
- wView.loadUrl("http://wap.baidu.com");
- }
- }
//wView.loadUrl("file:///android_asset/index.html");
-----打开本包内asset目录下的index.html文件
//wView.loadUrl("content://com.android.htmlfileprovider/sdcard/index.html");
-----打开本地sd卡内的index.html文件
//wView.loadUrl("http://wap.baidu.com");
-----打开指定URL的html文件
转自:http://blog.csdn.net/windone0109/article/details/5381170
- AssetManager manager=this.getAssets();
- try
- {
- manager.open("tahoma.ttf");
- TextView tv=(TextView)this.findViewById(R.id.testMe);
- tv.setTypeface(Typeface.createFromAsset(manager, "tahoma.ttf"));
- tv.setTextSize(50f);
- tv.setText(ArabicUtilities.reshape("adsdads الحمد لله asdad"));
- }catch(Exception ex){
- //TODO
- }
相关推荐
Android webview 加载网页以及本地资源以及SD资源demo,以及加载缓存资源
android webView加载html 并引用本地资源(图片、字体库)
android webview 加载本地html.zip,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
android webview加载网页获取对应url 参数值的方法(csdn)————程序
android Webview加载本地图片,自适应布局大小
Android webview加载网页
demo中介绍使用webview加载本地页面,并在java代码中提供js调用事件,在html中动态生成组件button
http://blog.csdn.net/menxu_work/article/details/12947837
Android WebView 加载 PDF 文件实现。其原理就是在 app 本地搭建一个 website ,然后利用 WebView 加载这个站点,站点去实现加载显示 PDF 的目的,站点其原理也是采用 js 框架去实现的。
Android实现WebView懒加载,提前进行页面JS资源加载。减少WebView加载时间及加载资源问题。Android 8.0以前需要引入X5内核,Android 8.0以后无特殊要求。
但如果跳转之后再加载,会看到webview有一个加载的过程,如果网页较大可能加载起来会很慢。这时我们利用启动页或引导页或中间的广告页的时间来预加载webview,利用View.gone,View.visible来实现控件类的隐藏与显示,...
webview 加载本地html文件,可以是互联网上,也可以是放在本地,不要忘了添加权限,
android webview加载gif图片,控件显示gif图片、加载网络图片,不卡,流畅,是开发者使用的好demo
Android通过JS在线用webview加载PDF文件(无限放大版本),支持webview无限放大
有些平板缺失加载webview所依赖的内核apk的资源文件,会导致应用加载webview报错。需要自己安装webview的apk。 webview全称叫做Android System WebView,它是Android生态系统的重要组成部分,也是Chrome浏览器的...
使用WebView加载本地Html文件,并实现按钮点击弹框效果。
webview加载本地资源例子 css js
android webview 加载网页 样例; 实现简单的加载网页;
android webview 加载本地html 实现 与 java 之间的相互响应.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
Android下使用Webview实现的HTML5视频播放器,播放本地视频时请加载video目录下的1.html