Fragment里使用 PhoneGap 的 CordovaWebView
来源:互联网 发布:怎样下载视频软件 编辑:程序博客网 时间:2024/05/16 05:41
首先说明一下为什么要使用 CordovaWebView 而不直接使用 WebView 呢?由于 Android4.4 版本之后对 WebView 做了很大的改变,具体参考
这篇文章:理解WebKit和Chromium: Android 4.4 上的Chromium WebView,这样的改变会出现这样的问题,也是我遇到的问题:webview4.4以上版本使用loadurl加载过长js文件失效问题
网上也有相关的解决方法,但是感觉很麻烦,而且解决不了我的问题,最后想了想,我们在使用 PhoneGap 的时候有一个继承 WebView 的 CordovaWebView 组件
已经对于这样的问题做了很好的处理,所以为何不直接用咧,所以就有了这篇文章的: Fragment里使用 PhoneGap 的 CordovaWebView
实现一个类继承 PhoneGap 的接口:CordovaInterface
<span style="font-size:14px;">import android.app.Activity;import android.content.ContextWrapper;import android.content.Intent;import org.apache.cordova.CordovaInterface;import org.apache.cordova.CordovaPlugin;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;/** * Created by long on 2016/5/30. */public class CordovaContext extends ContextWrapper implements CordovaInterface { Activity activity; protected final ExecutorService threadPool = Executors.newCachedThreadPool(); public CordovaContext(Activity activity) { super(activity.getBaseContext()); this.activity = activity; } @Override public void startActivityForResult(CordovaPlugin cordovaPlugin, Intent intent, int i) { } @Override public void setActivityResultCallback(CordovaPlugin cordovaPlugin) { } @Override public Activity getActivity() { return activity; } @Override public Object onMessage(String s, Object o) { return null; } @Override public ExecutorService getThreadPool() { return threadPool; }}</span>
<span style="font-size:14px;">import android.app.Fragment;import android.os.Build;import android.os.Bundle;import android.util.Log;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.webkit.WebView;import org.apache.cordova.Config;import org.apache.cordova.CordovaWebView;public class HomeFragment extends Fragment { private View view = null; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { LayoutInflater localInflater = inflater.cloneInContext(new CordovaContext(this.getActivity())); view = localInflater.inflate(R.layout.fragment_cordova, container, false); CordovaWebView webView = (CordovaWebView) view.findViewById(R.id.id_cordovaWebView); Config.init(getActivity()); webView.loadUrl("file:///android_asset/www/index_home.html"); } return view; }}</span>
相关文章分享:
http://www.lai18.com/content/1978961.html
https://github.com/Adobe-Marketing-Cloud-Apps/app-sample-android-phonegap/wiki/Embed-Webview-in-Android-Fragment
0 0
- Fragment里使用 PhoneGap 的 CordovaWebView
- Fragment里使用CordovaWebView
- 如何在Fragment中使用phonegap的CordovaWebView
- 如何在Fragment中使用phonegap的CordovaWebView
- PhoneGap使用CordovaWebView时注意事项
- phonegap使用的初步研究(一)cordovaWebView不能加载外网的页面
- phonegap学习之CordovaWebView
- phonegap学习之CordovaWebView
- 在PhoneGap应用中拦截CordovaWebView的url
- 如何使用fragment里的控件
- 使用标准库里的fragment
- PHONEGAP的使用
- PhoneGap的使用
- 实现PhoneGap应用里的消息推送
- ViewPager与support包里的Fragment家族一起使用
- Fragment里嵌套Fragment之间的切换
- 解决Fragment中使用ViewPager时,ViewPager里的Fragment错位和空白问题
- 解决Fragment中使用ViewPager时,ViewPager里的Fragment错位和空白问题。
- Android动画用到的基本的属性和学习笔记
- 《JavaScript学习笔记》:DOM_添加节点、删除节点、文档碎片
- LeetCode 78 Subsets
- 简单爬虫
- jquery上传图片本地预览插件V1.2
- Fragment里使用 PhoneGap 的 CordovaWebView
- HighCharts绘图 + Python解析文本
- pageHelper实现分页
- SDNUOJ1011(斯特灵数)
- Middle-题目105:93. Restore IP Addresses
- Linux下的进度条小程序
- 压缩跟踪Compressive Tracking
- solr服务器搭建
- 谈谈头文件