android按钮跳转到web页面代码,原生android跳转到h5+开发的android界面

在hbuilder官网下载最新sdk,解压后的内容如下:

be368922fa11

在androidstudio上新建一个android项目,主界面就一个按钮很简单

be368922fa11

导入jar包,亲测至少需要这几个包

be368922fa11

用Hbuilder创建一个简单的app项目,如果不会请问度娘

查看app的id,可以自己修改,我为了偷懒没有修改

be368922fa11

回到android studio 在main目录下创建assets文件夹,在assets目录下创建apps文件夹,在apps目录下创建名字为appid的目录,然后在这个目录下创建www目录,注意一定要一个目录一个目录创建,不要直接创建一个apps.H5BF312F2.www目录,虽然看起来效果貌似一样,不要问我为什么要强调这个。。。。

be368922fa11

然后将创建的Hbuilder项目内容全部拷贝到这个目录下

be368922fa11

be368922fa11

然后在assets目录下创建data目录,创建dcloud_control.xml文件和dcloud_properties.xml文件

内容如下

be368922fa11

be368922fa11

最后来创建一个承载这个webapp的界面,具体代码如下

```

public classMain2ActivityextendsAppCompatActivity {

EntryProxymEntryProxy=null;

@Override

protected voidonCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

//        setContentView(R.layout.activity_main2);

FrameLayout frameLayout =newFrameLayout(this);

WebappModeListener listener =newWebappModeListener(this,frameLayout);

mEntryProxy= EntryProxy.init(this,listener);

mEntryProxy.onCreate(this,savedInstanceState,SDK.IntegratedMode.WEBAPP,null);

setContentView(frameLayout);

}

@Override

protected voidonDestroy() {

super.onDestroy();

mEntryProxy.onStop(this);

}

classWebappModeListenerimplementsICore.ICoreStatusListener,IOnCreateSplashView{

Activityactivity;

ViewsplashView=null;

ViewGrouprootView;

IAppapp=null;

ProgressDialogpd=null;

publicWebappModeListener(Activity activity,ViewGroup rootView){

this.activity= activity;

this.rootView= rootView;

}

@Override

public voidonCoreReady(ICore iCore) {

SDK.initSDK(iCore);

SDK.requestAllFeature();

}

@Override

public voidonCoreInitEnd(ICore iCore) {

String appBasePath ="/apps/H5BF312F2";

String args ="{url:'http://www.baidu.com'}";

app= SDK.startWebApp(Main2Activity.this,appBasePath,args, newIWebviewStateListener() {

@Override

publicObjectonCallBack(inti,Object o) {

switch(i){

caseIWebviewStateListener.ON_WEBVIEW_READY:

View view = ((IWebview) o).obtainApp().obtainWebAppRootView().obtainMainView();

view.setVisibility(View.INVISIBLE);

if(view.getParent() !=null){

((ViewGroup)view.getParent()).removeView(view);

}

rootView.addView(view,0);

break;

}

return null;

}

},this);

}

@Override

public booleanonCoreStop() {

return false;

}

@Override

publicObjectonCreateSplash(Context context) {

return null;

}

@Override

public voidonCloseSplash() {

app.obtainWebAppRootView().obtainMainView().setVisibility(View.VISIBLE);

}

}

}

```

我这里是做的一个最简单最精简的demo,将Hbuilder官方出的demo裁剪出来的,如果是app有其他需要权限的功能,需要导入对应的jar包,添加权限,修改dcloud_properties.xml文件,在apps目录下添加步骤和上面一样,修改Main2Activity里面appBasePath的值就行了,具体的看官方demo。

github地址:https://github.com/ganlong-2016/H5Test

恩,下一步该研究的就是怎么在h5里面调用自定义的java类。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值