您的位置:首页 > 移动开发 > Android开发

自己写的HTML嵌入Android项目,运用webview控件与Fragment与activity之间的传值

2017-07-08 20:50 411 查看
自己写的HTML嵌入Android项目,运用webview控件

1.在自己的项目下新建一个包取名asetss.然后把你需要嵌入 的HTML网页和css以及js,网页都放入此文件夹下面,看下图:



2.代码演示:
页面:用webview加载显示
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<WebView
android:layout_gravity="center"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/index_WebView"
>
</WebView>

</LinearLayout>

3.activity
public class IndexFragment extends Fragment {

private WebView webView;

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_index, null);
webView = view.findViewById(R.id.index_WebView);
// indexFragment = new IndexFragment();
//加载的路径
webView.loadUrl("file:///android_asset/index_fragment_02/fragment.html");
//支持App内部JavaScript交互
webView.getSettings().setJavaScriptEnabled(true);
//自适应屏幕
webView.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);
webView.getSettings().setLoadWithOverviewMode(true);
//设置可以支持缩放
webView.getSettings().setSupportZoom(true);
//扩大比例的缩放
webView.getSettings().setUseWideViewPort(true);
//设置是否出现缩放工具
webView.getSettings().setBuiltInZoomControls(true);

//设置编码
webView.getSettings().setDefaultTextEncodingName("utf-8");


Fragment与activity之间的传值

已经嵌入你想要嵌入的碎片中之后,如果你还需要从你自己写的HTML中跳到另一原生的和HTML时,就要进行fragment与activity之间的传值交互啦
1.注意:必须要支持js的交互
Fragment:
package com.example.administrator.myapplication;

import android.content.Intent;
import android.content.res.AssetManager;
import android.graphics.Typeface;
import android.net.Uri;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.view.ViewPager;
import android.text.method.ScrollingMovementMethod;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.webkit.JavascriptInterface;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

import com.handmark.pulltorefresh.library.PullToRefreshListView;

import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

/**
* Created by Administrator on 2017/6/20.
*/
public class IndexFragment extends Fragment {

private WebView webView;

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_index, null);
webView = view.findViewById(R.id.index_WebView);
// indexFragment = new IndexFragment();
webView.loadUrl("file:///android_asset/index_fragment_02/fragment.html");
//支持App内部JavaScript交互
webView.getSettings().setJavaScriptEnabled(true);
//自适应屏幕
webView.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);
webView.getSettings().setLoadWithOverviewMode(true);
//设置可以支持缩放
webView.getSettings().setSupportZoom(true);
//扩大比例的缩放
webView.getSettings().setUseWideViewPort(true);
//设置是否出现缩放工具
webView.getSettings().setBuiltInZoomControls(true);

//设置编码
webView.getSettings().setDefaultTextEncodingName("utf-8");

//添加JS接口
webView.addJavascriptInterface(this,"myJump");
return view;
}

//此方法在HTML中填路径时调用
@JavascriptInterface
public void jump(String url){
// Log.i("test","调用:"+url);
// Toast.makeText(getActivity(), "aaaa", Toast.LENGTH_SHORT).show();
Intent intent=new Intent(getActivity(),JumpActivity.class);
//传值
String str="file:///android_asset/index_fragment_02/"+url;
intent.putExtra("url",str);
startActivity(intent);
//
// jumpActivity.setArguments(bundle);
// .replace(R.id.guide_content, df);
// ft.addToBackStack(null);
// ft.commit();
// jumpActivity.("url",str);
// Log.i("test","调用:"+str);

//
// Intent intent1=new Intent();
// intent.setAction(Intent.ACTION_VIEW);
// intent.setData(Uri.parse(str));
// startActivity(intent);
}

}
2.activity
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_jump);
webView = (WebView) findViewById(R.id.wv_jump_web);
//获取传过来的url
url = getIntent().getStringExtra("url");
webView.loadUrl(url);
}

HTML:

<script>
function jump(url){
myJump.jump(url);
}
</script>
Js的方法,然后要跳转的路径里调用此方法.好了就这么多



 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: