zoukankan      html  css  js  c++  java
  • 11.webview、shareSDK

    布局:
    1. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    2. android:layout_width="match_parent"
    3. android:layout_height="match_parent"
    4. android:orientation="vertical" >
    5. <RelativeLayout
    6. android:layout_width="match_parent"
    7. android:layout_height="wrap_content"
    8. android:background="@drawable/title_red_bg" >
    9. <ImageButton
    10. android:id="@+id/btn_back"
    11. android:layout_width="wrap_content"
    12. android:layout_height="wrap_content"
    13. android:layout_centerVertical="true"
    14. android:layout_marginLeft="5dp"
    15. android:background="@null"
    16. android:src="@drawable/back" />
    17. <ImageButton
    18. android:id="@+id/btn_share"
    19. android:layout_width="wrap_content"
    20. android:layout_height="wrap_content"
    21. android:layout_alignParentRight="true"
    22. android:layout_centerVertical="true"
    23. android:layout_marginRight="5dp"
    24. android:background="@null"
    25. android:src="@drawable/icon_share" />
    26. <ImageButton
    27. android:id="@+id/btn_size"
    28. android:layout_width="wrap_content"
    29. android:layout_height="wrap_content"
    30. android:layout_centerVertical="true"
    31. android:layout_marginRight="5dp"
    32. android:layout_toLeftOf="@id/btn_share"
    33. android:background="@null"
    34. android:src="@drawable/icon_textsize" />
    35. </RelativeLayout>
    36. <FrameLayout
    37. android:layout_width="match_parent"
    38. android:layout_height="0dp"
    39. android:layout_weight="1" >
    40. <WebView
    41. android:id="@+id/wv_web"
    42. android:layout_width="match_parent"
    43. android:layout_height="match_parent" />
    44. <ProgressBar
    45. android:id="@+id/pb_progress"
    46. android:layout_width="wrap_content"
    47. android:layout_height="wrap_content"
    48. android:layout_gravity="center"
    49. android:indeterminateDrawable="@drawable/custom_progress" />
    50. </FrameLayout>
    51. </LinearLayout>
    2.新闻详情页
    1. public class NewsDetailActivity extends Activity implements OnClickListener {
    2. private WebView mWebView;
    3. private ImageButton btnBack;//后退按钮
    4. private ImageButton btnSize;//设置网页文本大小
    5. private ImageButton btnShare;//分享
    6. private ProgressBar pbProgress;//一进去没加载出内容的进度圈
    7. @Override
    8. protected void onCreate(Bundle savedInstanceState) {
    9. super.onCreate(savedInstanceState);
    10. requestWindowFeature(Window.FEATURE_NO_TITLE);
    11. setContentView(R.layout.activity_news_detail);
    12. mWebView = (WebView) findViewById(R.id.wv_web);
    13. btnBack = (ImageButton) findViewById(R.id.btn_back);
    14. btnSize = (ImageButton) findViewById(R.id.btn_size);
    15. btnShare = (ImageButton) findViewById(R.id.btn_share);
    16. btnBack.setOnClickListener(this);
    17. btnSize.setOnClickListener(this);
    18. btnShare.setOnClickListener(this);
    19. pbProgress = (ProgressBar) findViewById(R.id.pb_progress);
    20. String url = getIntent().getStringExtra("url");
    21. WebSettings settings = mWebView.getSettings();//获取设置对象
    22. settings.setJavaScriptEnabled(true);// 表示支持js,即网页的阅读全文
    23. settings.setBuiltInZoomControls(true);// 显示放大缩小按钮
    24. settings.setUseWideViewPort(true);// 支持双击缩放
    25. mWebView.setWebViewClient(new WebViewClient() {
    26. /**
    27. * 网页开始加载
    28. */
    29. @Override
    30. public void onPageStarted(WebView view, String url, Bitmap favicon) {
    31. super.onPageStarted(view, url, favicon);
    32. System.out.println("网页开始加载");
    33. pbProgress.setVisibility(View.VISIBLE);
    34. }
    35. /**
    36. * 网页加载结束
    37. */
    38. @Override
    39. public void onPageFinished(WebView view, String url) {
    40. super.onPageFinished(view, url);
    41. System.out.println("网页开始结束");
    42. pbProgress.setVisibility(View.GONE);
    43. }
    44. /**
    45. * 所有跳转的链接都会在此方法中回调
    46. */
    47. @Override
    48. public boolean shouldOverrideUrlLoading(WebView view, String url) {
    49. // tel:110,在这里可以获取连接,可以做很多操作,比如获取了110,我们可以打电话,获取的URL和我们黄网数据库匹配了,可以拦截等
    50. System.out.println("跳转url:" + url);
    51. view.loadUrl(url);//自己的应用中打开网页,不会调到系统浏览器了
    52. return true;
    53. // return super.shouldOverrideUrlLoading(view, url);
    54. }
    55. });
    56. // mWebView.goBack()//比如弄个上一页下一页的按钮执行这个方法
    57. mWebView.setWebChromeClient(new WebChromeClient() {
    58. /**
    59. * 进度发生变化
    60. */
    61. @Override
    62. public void onProgressChanged(WebView view, int newProgress) {
    63. System.out.println("加载进度:" + newProgress);
    64. super.onProgressChanged(view, newProgress);
    65. }
    66. /**
    67. * 获取网页标题
    68. */
    69. @Override
    70. public void onReceivedTitle(WebView view, String title) {
    71. System.out.println("网页标题:" + title);//可以显示在顶部的textview上
    72. super.onReceivedTitle(view, title);
    73. }
    74. });
    75. mWebView.loadUrl(url);// 默认加载网页,可以随便写
    76. }
    77. @Override
    78. public void onClick(View v) {
    79. switch (v.getId()) {
    80. case R.id.btn_back:
    81. finish();//销毁activity,即显示出了上一个页面
    82. break;
    83. case R.id.btn_size:
    84. showChooseDialog();
    85. break;
    86. case R.id.btn_share:
    87. showShare();
    88. break;
    89. default:
    90. break;
    91. }
    92. }
    93. private int mCurrentChooseItem;// 记录当前选中的item, 点击确定前
    94. private int mCurrentItem = 2;// 记录当前选中的item, 点击确定后,默认是标准字体,有个问题:在进来又变回了标准,可以保存起来
    95. /**
    96. * 显示选择对话框
    97. */
    98. private void showChooseDialog() {
    99. AlertDialog.Builder builder = new AlertDialog.Builder(this);
    100. String[] items = new String[] { "超大号字体", "大号字体", "正常字体", "小号字体",
    101. "超小号字体" };
    102. builder.setTitle("字体设置");
    103. builder.setSingleChoiceItems(items, mCurrentItem,
    104. new DialogInterface.OnClickListener() {
    105. @Override
    106. public void onClick(DialogInterface dialog, int which) {
    107. System.out.println("选中:" + which);
    108. mCurrentChooseItem = which;
    109. }
    110. });
    111. builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
    112. @Override
    113. public void onClick(DialogInterface dialog, int which) {
    114. WebSettings settings = mWebView.getSettings();
    115. switch (mCurrentChooseItem) {
    116. case 0:
    117. settings.setTextSize(TextSize.LARGEST);
    118. break;
    119. case 1:
    120. settings.setTextSize(TextSize.LARGER);
    121. break;
    122. case 2:
    123. settings.setTextSize(TextSize.NORMAL);
    124. break;
    125. case 3:
    126. settings.setTextSize(TextSize.SMALLER);
    127. break;
    128. case 4:
    129. settings.setTextSize(TextSize.SMALLEST);
    130. break;
    131. default:
    132. break;
    133. }
    134. mCurrentItem = mCurrentChooseItem;
    135. }
    136. });
    137. builder.setNegativeButton("取消", null);
    138. builder.show();
    139. }
    140. /**
    141. * 分享, 注意在sdcard根目录放test.jpg,就是这个天气图片
    142. */
    143. private void showShare() {
    144. ShareSDK.initSDK(this);
    145. OnekeyShare oks = new OnekeyShare();
    146. oks.setTheme(OnekeyShareTheme.SKYBLUE);//设置天蓝色的主题
    147. // 关闭sso授权
    148. oks.disableSSOWhenAuthorize();
    149. // 分享时Notification的图标和文字,不知道为什么这报错,还是不能写字
    150. oks.setNotification(R.drawable.ic_launcher,
    151. getString(R.string.app_name));
    152. // title标题,印象笔记、邮箱、信息、微信、人人网和QQ空间使用
    153. oks.setTitle(getString(R.string.share));
    154. // titleUrl是标题的网络链接,仅在人人网和QQ空间使用
    155. oks.setTitleUrl("http://sharesdk.cn");
    156. // text是分享文本,所有平台都需要这个字段
    157. oks.setText("我是分享文本");
    158. // imagePath是图片的本地路径,Linked-In以外的平台都支持此参数
    159. oks.setImagePath("/sdcard/test.jpg");// 确保SDcard下面存在此张图片
    160. // url仅在微信(包括好友和朋友圈)中使用
    161. oks.setUrl("http://sharesdk.cn");
    162. // comment是我对这条分享的评论,仅在人人网和QQ空间使用
    163. oks.setComment("我是测试评论文本");
    164. // site是分享此内容的网站名称,仅在QQ空间使用
    165. oks.setSite(getString(R.string.app_name));
    166. // siteUrl是分享此内容的网站地址,仅在QQ空间使用
    167. oks.setSiteUrl("http://sharesdk.cn");
    168. // 启动分享GUI
    169. oks.show(this);
    170. }
    171. }
    • 导入的时候遇到了错误,我把工作空间改了成utf-8,但是有一个文件还是报错,于是把例子程序的这个文件拷进来就好了。后来发现运行的程序里的文字是乱码,后来找到了原因,因为我的工作空间默认是GBK,没有修改,所以改成utf-8不识别了。而人家的sdk却是u8。可以单击报错的文件单个修改。以后建工作空间的时候首先要改编码
    • 审核一般是2-3天或者一个礼拜
    1. <ShareSDK
    2. AppKey = "62aa650a6c53"/> <!-- 修改成你在sharesdk后台注册的应用的appkey"-->
    3. <!-- ShareByAppClient标识是否使用微博客户端分享,默认是false -->
    4. <SinaWeibo
    5. Id="1"
    6. SortId="1"
    7. AppKey="568898243"//每个应用都需要审核这个APIkey,能写来自。。。。
    8. AppSecret="38a4f8204cc784f81f9f0daaf31e02e3"
    9. RedirectUrl="http://www.sharesdk.cn"
    10. ShareByAppClient="false"
    11. Enable="true" />










  • 相关阅读:
    sql server拆分字符串
    Pivot 和 UnPivot 实现行列转换
    SQL快速生成连续整数
    Sql Server水平分区
    各种排序算法的C语言实现
    JWT 与 Token 介绍
    python接口自动化-token关联登录
    CUDA刷新器:CUDA编程模型
    利用MONAI加速医学影像学的深度学习研究
    构建可扩展的GPU加速应用程序(NVIDIA HPC)
  • 原文地址:https://www.cnblogs.com/sixrain/p/4918953.html
Copyright © 2011-2022 走看看