微信小程序是一种全新的连接用户与服务的方式,它可以在微信内被便捷地获取和传播,同时具有出色的使用体验。同时提供一系列工具帮助开发者快速接入并完成小程序开发。关于如何注册配置就不多言了,本文主要还是体验了下 web-view 的功能。
有了这个组件之后,小程序可以很好的嵌入一些页面,可以环境小程序 size 告急的问题,同样也使开发更加便捷,毕竟小程序开发者基本都对前端开发较为了解。
说再多还是需要去看官方文档, web-view文档 ,
首先就需要注意:兼容问题, 版本库和对应版本比例
目前而言,基本 80% 的用户会升级微信,所以其实不必担心版本问题,官方截止 2017-12-01 提供的数据也说明 88% 的用户支持 web-view 。
web-view 组件是一个可以用来承载网页的容器,会自动铺满整个小程序页面;
属性: src 是 String 类型,是一个网站的 url ,默认值是 none , webview 指向网页的链接。需登录小程序管理后台配置域名白名单。
可以配合 Page 实例的 onLoad 方法来获取 url 的具体值,也就是一个微信小程序页面中只有一个 web-view ,但是这个 web-view 的内容可以根据上一个页面传递的参数来获取页面 URL ,后面会讲如何实践,
官方提供如下接口:
1 由小程序到 web-view ,其实本质上 WEB-VIEW 也是小程序的一个页面,所以小程序到 web-view 是正常的小程序间的通信,通过 wxnavigateTo 、 wxredirectTo ,带上 url 参数, query 参数就像正常 url 的参数一样跟着后面,然后在 web-view 的页面的 Page 实例里面通过 onLoad 的方法的参数来获取 url 的值,设置给 web-view 的 src 属性为改值即可。
2 由 web-view 到小程序,由于在 web-view 的跳转通常是在 src 对应的网页中的 *** 作来处理的,所以需要结合 jssdk 来处理,不需要 wxconfig 配置,直接通过 script 标签来引入 [>
JS调用java代码效果图
java代码调用javasrcipt代码效果图
indexhtml代码:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 401//EN" ">
<xml version="10" encoding="utf-8"><LinearLayout xmlns:android=">
public class MainActivity extends AppCompatActivity {private WebView mWebView; @Override protected void onCreate(Bundle savedInstanceState) { superonCreate(savedInstanceState); setContentView(Rlayoutactivity_main); mWebView = (WebView) findViewById(Ridtest_webview); //设置WebView支持JavaScript mWebViewgetSettings()setJavaScriptEnabled(true); mWebViewloadUrl("file:///android_asset/indexhtml"); mWebViewaddJavascriptInterface(new JsInterface(this), "AndroidWebView"); //添加客户端支持 mWebViewsetWebChromeClient(new WebChromeClient()); findViewById(Ridtest_btn)setOnClickListener(new ViewOnClickListener() { @Override public void onClick(View v) {
sendInfoToJs(); }
}); } private class JsInterface { private Context mContext; public JsInterface(Context context) { thismContext = context; } //在js中调用windowAndroidWebViewshowInfoFromJs(name),便会触发此方法。 @JavascriptInterface public void showInfoFromJs(String share) {
ToastmakeText(mContext, share, ToastLENGTH_SHORT)show(); }
} //在java中调用js代码 public void sendInfoToJs() {
String msg = ((EditText)findViewById(Ridtest_edt))getText()toString(); //调用js中的函数:showInfoFromJava(msg) mWebViewloadUrl("javascript:showInfoFromJava('" + msg + "')"); }
总结下,java代码中要设置webview对javascript的支持,addJavascriptInterface(new JsInterface(this), "AndroidWebView");//这句代码中的第二个参数是在js访问方法的地址。
windowAndroidWebViewshowInfoFromJs(share);
webview 获取 网页的title
WebView mWebView = (WebView) findViewById(Ridmwebview);
mWebViewsetWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
ExperimentingActivitythissetTitle(viewgetTitle());
}
});
getTitle
public String getTitle()
Get the title for the current page This is the title of the current page until WebViewClientonReceivedTitle is called
返回:
The title for the current page
下面这篇文章总结的比较全 ,但是 onReceivedTitle()方法在goback()之后无效。
如有转载,请声明出处: 时之沙: >
最核心的一个概念 :
小程序 的webview(H5页面)中调用jssdk中的功能(比如获取位置信息),需要有一个和小程序申请主体一致的 公众号 账号,在公众号里去配置相关的jssdk信息
1 小程序账号
因为webview不支持个人类型,所以需要申请一个企业法人及个体工商户类型的小程序账号
2 公众号账号
要求小程序和公众号的账号对应的主体信息必须一致,有两种途径达到此目的:
先申请公众号账号,然后通过公众号的快速生成小程序功能,生成步骤1的小程序账号,这样这两个自然满足同主体资格
登录微信公众号平台,点击小程序管理-添加-快速注册并认证小程序:
用和申请小程序账号完全一致的主体信息去申请公众号(主体类型,主体名称,主体证件号),也能保证两个账号的主体资格一致(目前没有小程序快速生成公众号账号的功能)
3 域名绑定
这里需要两个账号都配置一下:
业务域名
首先webview指向一个外部网页链接(我们的H5页面)
<web-view src=">
以上就是关于微信小程序webview跳转小程序内路由全部的内容,包括:微信小程序webview跳转小程序内路由、Android 在WebView中通过javascript获取网页源码,并在TextView或者在EditText中显示问题、webview中有没有办法获取到网页源代码,加载AJAX后的等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)