android 中与 vuejs的集成: 跳转到普通的url ( 注意没有交互, 就是普通的跳转)
访问量: 2879
1. activity中, 对url 进行拦截:
@Override public void onPageFinished(WebView view, String url) { super.onPageFinished(view, url); Log.d(TAG, "onPageFinished, url: " + url); Matcher matcher = Pattern.compile("login").matcher(url); if(matcher.find()){ Log.d(TAG, "to login page"); Intent intent = new Intent(MainActivity.this, LoginActivity.class); startActivity(intent); finish(); } }
2. 创建对应的目标Activity ( 我整个粘过来的,其实没有太大作用, 有一个webview, 和对应的 xml就可以了)
package topgroup.com.topgroupandroid; import android.content.Intent; import android.graphics.Bitmap; import android.os.Bundle; import android.os.Handler; import android.util.Log; import android.view.View; import android.webkit.WebResourceResponse; import android.webkit.WebSettings; import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.RadioButton; import android.widget.Toast; public class LoginActivity extends BaseActivity implements View.OnClickListener{ private WebView webview; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.setContentView(R.layout.login_activity); initView(); setWebView(); Log.d("== in login activity", " loading login"); showLoadingDialog(); webview.loadUrl(appendParameters(PageUrls.LOGIN)); } private void initView() { webview = (WebView) findViewById(R.id.login_web_view); } private void setWebView() { radioButton3.setChecked(true); webview.getSettings().setJavaScriptEnabled(true); webview.getSettings().setDomStorageEnabled(true); WebSettings settings = webview.getSettings(); settings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NORMAL); //排版适应屏幕 settings.setLoadWithOverviewMode(true); // setUseWideViewPort方法设置webview推荐使用的窗口。setL settings.setUseWideViewPort(true); settings.setPluginState(WebSettings.PluginState.ON); settings.setJavaScriptCanOpenWindowsAutomatically(true); settings.setAllowFileAccess(true); settings.setDefaultTextEncodingName("UTF-8"); webview.setBackgroundColor(0); webview.setVisibility(View.VISIBLE); webview.setWebViewClient(new gameWebViewClient()); } @Override public void onClick(View view){ switch(view.getId()){ case R.id.button_home: Intent intent_home = new Intent(this, MainActivity.class ); startActivity(intent_home); finish(); break; } } public class gameWebViewClient extends WebViewClient { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { Log.d(TAG, "onPageFinished, 触发的url是====" + url); view.loadUrl(appendParameters(url)); return false; } @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { Log.d(TAG, "onPageStarted, 触发的url是====" + url); super.onPageStarted(view, url, favicon); } @Override public WebResourceResponse shouldInterceptRequest(WebView view, String url) { Log.d(TAG, "shouldInterceptRequest, 触发的url是====" + url); return super.shouldInterceptRequest(view, url); } @Override public void onPageFinished(WebView view, String url) { super.onPageFinished(view, url); // getUserId(); // // Log.d(TAG, "onPageFinished, 触发的url是====" + url); // Pattern pattern = Pattern.compile("product"); // Matcher matcher = pattern.matcher(url); // if (matcher.find()) { // Log.d(TAG, "拦截到了,跳转产品详情==="); // //跳转到产品activity // toProduct(url); // } Log.d(TAG, "取消小菊花开始..."); // 取消小菊花 放在这里才可以. 针对myorder 打开的时候小菊花不会消失。 try { dismissLoadingDialog(); }catch(Exception e){ try{ dismissLoadingDialog(); }catch(Exception e2) { Log.e(TAG, "== 取消小菊花出错了: " + e.toString()); } } } } boolean doubleBackToExitPressedOnce = false; @Override public void onBackPressed() { // if (doubleBackToExitPressedOnce) { // super.onBackPressed(); // return; // } // // this.doubleBackToExitPressedOnce = true; // Toast.makeText(this, "Please click BACK again to exit", Toast.LENGTH_SHORT).show(); // // new Handler().postDelayed(new Runnable() { // // @Override // public void run() { // doubleBackToExitPressedOnce=false; // } // }, 2000); } }
3. 对应的 XML;
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/pure_white"
android:fitsSystemWindows="true"
android:orientation="vertical"
tools:context="topgroup.com.topgroupandroid.LoginActivity"
android:weightSum="1">
<!-- 这个是最最重要的, 有个web view -->
<WebView
android:id="@+id/login_web_view"
android:layout_width="fill_parent"
android:layout_height="239dp"
android:layout_weight="1.01">
</WebView> </LinearLayout>
最后记得在 android manifest.xml 中声明上面的activity (login activity)就好了.