Fragment里使用 PhoneGap 的 CordovaWebView

原创 2016年05月31日 20:30:20

首先说明一下为什么要使用 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

版权声明:本文为博主原创文章,未经博主允许不得转载。

【android进阶】Fragment内放置WebView,监听返回键,并返回之前打开的网页

参考链接:http://itindex.net/detail/53169-android-%E5%BC%80%E5%8F%91-webview                     http://b...
  • dodod2012
  • dodod2012
  • 2016年01月07日 15:37
  • 6537

cordova 在android的端使用

目的:将h5开发的功能模块嵌入到原生android中 打开h5端开发的cordova应用的文件夹 进入platforms文件夹 进入android 将里面的CordovaLib作为一个modle导...
  • qq_23412151
  • qq_23412151
  • 2016年11月09日 19:22
  • 707

Fragment里使用CordovaWebView

因为CordovaWebView 默认的初始化里判断了Content是不是继承CordovaInterface,如果直接使用Fragment继承CordovaInterface,CordovaInte...
  • sujudz
  • sujudz
  • 2015年04月20日 16:14
  • 4260

如何在Fragment中使用phonegap的CordovaWebView

就为这个问题翻遍国内外各大论坛  功夫不负有心人 终于在github上找到答案 原文地址:https://github.com/Adobe-Marketing-Cloud/app-sample-an...
  • zhaochanglong
  • zhaochanglong
  • 2015年01月29日 15:23
  • 5056

在Fragment中如何使用Toolbar

这个Toolbar实在折磨了我好几天。。。知道看到下面这个提醒然后出去吹了吹风,终于弄出来了....其实跟提醒无关。我卡在这句上了.... toolbar.inflateMenu(R.m...
  • tiramisu_ljh
  • tiramisu_ljh
  • 2016年01月08日 15:21
  • 6135

安卓中RecyclerView的使用

1.创建一个主布局文件,里面只有FrameLayout,用于放置所要托管的活动:activity_main.xml: xml version="1.0" encoding="utf-8"?> Fra...
  • u010273007
  • u010273007
  • 2017年05月02日 16:39
  • 429

Fragment集成cordova框架遇到的问题

1.Fragment中使用CordovaWebview 在github上有集成方法, https://github.com/Adobe-Marketing-Cloud/app-sample-andro...
  • err118
  • err118
  • 2015年12月30日 10:00
  • 1485

使用指南:PhoneGap的CordovaWebView组件在Android原生项目中使用.

  • 2012年08月02日 17:26
  • 1.09MB
  • 下载

Fragment实现的自定义Dialog

在activity中,实现一个Dialog,我们可以从写activity中的方法:public Dialog onCreateDialog(int dialogId),这里的dialogId标识了我们...
  • Green_shing
  • Green_shing
  • 2015年05月11日 16:00
  • 2005

自学Android之UI组件:(二)Fragment的基本使用(上)

本篇为UI组件的第二篇,主要探讨关于Fragment的基本使用,包括简单的原理以及创建、修改、删除等操作。 在本篇文章中,你将了解到: 1.什么是Fragment。 2.Fragment的生命周期。...
  • cc_xz
  • cc_xz
  • 2017年03月12日 15:39
  • 352
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Fragment里使用 PhoneGap 的 CordovaWebView
举报原因:
原因补充:

(最多只允许输入30个字)