
{"id":748,"date":"2016-11-06T21:43:51","date_gmt":"2016-11-06T13:43:51","guid":{"rendered":"http:\/\/www.jiandaima.com\/blog\/?p=748"},"modified":"2016-11-22T10:04:47","modified_gmt":"2016-11-22T02:04:47","slug":"qq%e6%8a%a2%e7%ba%a2%e5%8c%85%e6%8f%92%e4%bb%b6%e5%ae%9e%e7%8e%b0%ef%bc%8c%e5%ae%89%e5%8d%93%e6%ba%90%e7%a0%81%ef%bc%8c%e4%bb%a5%e5%8f%8a%e8%af%a6%e7%bb%86%e5%88%86%e6%9e%90","status":"publish","type":"post","link":"http:\/\/www.jiandaima.com\/blog\/archives\/748.html","title":{"rendered":"QQ\u62a2\u7ea2\u5305\u63d2\u4ef6\u5b9e\u73b0\uff0c\u5b89\u5353\u6e90\u7801\uff0c\u4ee5\u53ca\u8be6\u7ec6\u5206\u6790,androidqq\u62a2\u7ea2\u5305\u6e90\u7801\uff0c\u6361\u4ee3\u7801\u8bba\u575b\u6574\u7406"},"content":{"rendered":"<p>QQ\u62a2\u7ea2\u5305\u63d2\u4ef6\u5b9e\u73b0 ,QQ\u62a2\u7ea2\u5305\u63d2\u4ef6\u5b9e\u73b0,\u5b89\u5353\u6e90\u7801,\u4ee5\u53ca\u8be6\u7ec6\u5206\u6790,androidqq\u62a2\u7ea2\u5305\u6e90\u7801<\/p>\n<p>\u6211\u5c06\u4e4b\u524d\u5728\u7f51\u4e0a\u5b95\u7684\u4e00\u4efd\u5fae\u4fe1\u62a2\u7ea2\u5305\u7684\u4ee3\u7801\u4fee\u6539\u4e86\u4e00\u4e0b\uff0c\u5b9e\u73b0\u4e86QQ\u62a2\u7ea2\u5305\uff01\u53ef\u4ee5\u652f\u6301\u62a2QQ\u62fc\u624b\u6c14\u7ea2\u5305\uff0c\u666e\u901a\u7ea2\u5305\uff0c\u53e3\u4ee4\u7ea2\u5305\uff0c\u73b0\u5728\u518d\u4e5f\u4e0d\u601520\u5e74\u5355\u8eab\u624b\u901f\u7684\u4eba\u8ddf\u6211\u62a2\u7ea2\u5305\u4e86\uff01<br \/>\n\u5148\u770b\u6d4b\u8bd5\u6548\u679c\u56fe\uff1a<br \/>\n1.\u62a2QQ\u53e3\u4ee4\u7ea2\u5305<br \/>\n<a href=\"http:\/\/upload-images.jianshu.io\/upload_images\/1440183-6788c271c29e0d39.gif?imageMogr2\/auto-orient\/strip\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/upload-images.jianshu.io\/upload_images\/1440183-6788c271c29e0d39.gif?imageMogr2\/auto-orient\/strip\" width=\"365\" height=\"617\" alt=\"\u62a2QQ\u53e3\u4ee4\u7ea2\u5305\u5305,\u6361\u4ee3\u7801\u8bba\u575b\" class=\"aligncenter size-medium\" \/><\/a><\/p>\n<p>2.\u62a2QQ\u62fc\u624b\u6c14\u7ea2\u5305\uff1a<br \/>\n<a href=\"http:\/\/upload-images.jianshu.io\/upload_images\/1440183-f6a3dc7fabbd2d3b.gif?imageMogr2\/auto-orient\/strip\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/upload-images.jianshu.io\/upload_images\/1440183-f6a3dc7fabbd2d3b.gif?imageMogr2\/auto-orient\/strip\" width=\"365\" height=\"617\" alt=\"\u62a2QQ\u62fc\u624b\u6c14\u7ea2\u5305,\u6361\u4ee3\u7801\u8bba\u575b\" class=\"aligncenter size-medium\" \/><\/a><\/p>\n<p>3.\u62a2QQ\u597d\u53cb\u53d1\u9001\u7684\u7ea2\u5305\uff1a<\/p>\n<p><a href=\"http:\/\/upload-images.jianshu.io\/upload_images\/1440183-936802d3cea53f84.gif?imageMogr2\/auto-orient\/strip\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/upload-images.jianshu.io\/upload_images\/1440183-936802d3cea53f84.gif?imageMogr2\/auto-orient\/strip\" width=\"366\" height=\"622\" alt=\"\u62a2QQ\u597d\u53cb\u53d1\u9001\u7684\u7ea2\u5305,\u6361\u4ee3\u7801\u8bba\u575b\" class=\"aligncenter size-medium\" \/><\/a><\/p>\n<p>\u53ea\u8981\u597d\u53cb\u6216\u8005\u7fa4\u91cc\u7684\u4eba\u628a\u7ea2\u5305\u4e00\u53d1\u51fa\uff0c\u5c31\u4f1a\u7b2c\u4e00\u65f6\u95f4\u8ba9\u4f60\u62a2\u5230\u7ea2\u5305\uff01\u6240\u4ee5\u53ea\u8981\u5728\u7fa4\u91cc\u9762\u5f00\u542f\u63d2\u4ef6\uff0c\u62a2\u7ea2\u5305\u4ece\u6765\u90fd\u662f\u767e\u53d1\u767e\u4e2d\uff01\u597d\u4e86\u5e9f\u8bdd\u4e0d\u591a\u8bf4\u4e86\uff0c\u4e5f\u4e0d\u5439\u5618\u6709\u591a\u725b\u591a\u597d\u4e86\uff0c\u4e0b\u9762\u76f4\u63a5\u7ed9\u5927\u5bb6\u4e0a\u4ee3\u7801\uff1a <\/p>\n<p><a href=\"http:\/\/bbs.jiandaima.com\/\" target=\"_blank\">\u6361\u4ee3\u7801\u8bba\u575b\u6574\u7406\u3002<\/a><\/p>\n<p>MainActivity: <\/p>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\n\/*MainActivity\u4e2d\u7684\u4ee3\u7801\u57fa\u672c\u6ca1\u6539\u53d8\uff1a*\/\r\npublic class MainActivity extends AppCompatActivity {\r\n    private final Intent mAccessibleIntent =  new Intent(Settings.ACTION_ACCESSIBILITY_SETTINGS);\r\n    private Button switchPlugin;\r\n   \r\n    @Overrideprotected void onCreate(Bundle savedInstanceState) {\r\n        super.onCreate(savedInstanceState);   \r\n        setContentView(R.layout.activity_main);   \r\n        switchPlugin = (Button) findViewById(R.id.button_accessible);\r\n        updateServiceStatus();\r\n    }\r\n   \r\n    \/*\u5f00\u542f\u63d2\u4ef6\u7684\u6309\u94ae*\/\r\n    public void onButtonClicked(View view) {startActivity(mAccessibleIntent);}\r\n   \r\n    @Overrideprotected void onResume() {\r\n        super.onResume();\r\n        updateServiceStatus();\r\n    }\r\n}\r\n   \r\n    private void updateServiceStatus() {   \r\n        boolean serviceEnabled = false;   \r\n        AccessibilityManager accessibilityManager = (AccessibilityManager) getSystemService(Context.ACCESSIBILITY_SERVICE);\r\n        List&lt;AccessibilityServiceInfo&gt; accessibilityServices = accessibilityManager.getEnabledAccessibilityServiceList(AccessibilityServiceInfo.FEEDBACK_GENERIC);   \r\n        for (AccessibilityServiceInfo info : accessibilityServices) {     \r\n            if (info.getId().equals(getPackageName() + &quot;\/.QQHongbaoService&quot;)) {         \r\n                serviceEnabled = true;          \r\n                break;       \r\n             }  \r\n         }\r\n         if (serviceEnabled) {   \r\n             switchPlugin.setText(&quot;\u5173\u95ed\u63d2\u4ef6&quot;); \r\n             getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);\r\n         } else {   \r\n             switchPlugin.setText(&quot;\u5f00\u542f\u63d2\u4ef6&quot;);   \r\n             getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);}\r\n     }\r\n}\r\n\r\n<\/pre>\n<p>\u8fd9\u91cc\u662fMainActivity\u4e2d\u7684\u5168\u90e8\u4ee3\u7801\uff0c\u662f\u4e0d\u662f\u5f88\u5c11\u7684\u6837\u5b50\uff0c\u4e3b\u8981\u662f\u5b9e\u73b0\u4e86\u4e00\u4e2a\u6309\u94ae\u53bb\u5f00\u542fACCESSIBILITY_SERVICE\u3002\u8fd9\u4e2a\u63d2\u4ef6\u4e3b\u8981\u5c31\u662f\u501f\u52a9AccessibilityService\u8fd9\u4e2a\u670d\u52a1\u6765\u5b9e\u73b0\u3002\u6240\u4ee5\u5269\u4e0b\u7684\u4ee3\u7801\u5c31\u90fd\u5728\u8fd9\u4e2a\u670d\u52a1\u4e2d\u4e86\uff01<br \/>\nQQHongbaoService\uff1a<\/p>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\n\r\npublic class QQHongbaoService extends AccessibilityService {\r\n  private static final String WECHAT_OPEN_EN = &quot;Open&quot;;   \r\n  private static final String WECHAT_OPENED_EN = &quot;You've opened&quot;;   \r\n  private final static String QQ_DEFAULT_CLICK_OPEN = &quot;\u70b9\u51fb\u62c6\u5f00&quot;;  \r\n  private final static String QQ_HONG_BAO_PASSWORD = &quot;\u53e3\u4ee4\u7ea2\u5305&quot;;   \r\n  private final static String QQ_CLICK_TO_PASTE_PASSWORD = &quot;\u70b9\u51fb\u8f93\u5165\u53e3\u4ee4&quot;;  \r\n  private boolean mLuckyMoneyReceived;   \r\n  private String lastFetchedHongbaoId = null;   \r\n  private long lastFetchedTime = 0;   \r\n  private static final int MAX_CACHE_TOLERANCE = 5000;   \r\n  private AccessibilityNodeInfo rootNodeInfo;   \r\n  private List&lt;AccessibilityNodeInfo&gt; mReceiveNode;\r\n   \r\n  @TargetApi(Build.VERSION_CODES.KITKAT)   \r\n  public void recycle(AccessibilityNodeInfo info) {       \r\n    if (info.getChildCount() == 0) {      \r\n      \/*\u8fd9\u4e2aif\u4ee3\u7801\u7684\u4f5c\u7528\u662f\uff1a\u5339\u914d\u201c\u70b9\u51fb\u8f93\u5165\u53e3\u4ee4\u7684\u8282\u70b9\uff0c\u5e76\u70b9\u51fb\u8fd9\u4e2a\u8282\u70b9\u201d*\/   \r\n      if(info.getText()!=null&amp;&amp;info.getText().toString().equals(QQ_CLICK_TO_PASTE_PASSWORD)) {\r\n        info.getParent().performAction(AccessibilityNodeInfo.ACTION_CLICK);           \r\n       }          \r\n      \/*\u8fd9\u4e2aif\u4ee3\u7801\u7684\u4f5c\u7528\u662f\uff1a\u5339\u914d\u6587\u672c\u7f16\u8f91\u6846\u540e\u9762\u7684\u53d1\u9001\u6309\u94ae\uff0c\u5e76\u70b9\u51fb\u53d1\u9001\u53e3\u4ee4*\/\r\n      if (info.getClassName().toString().equals(&quot;android.widget.Button&quot;) &amp;&amp; info.getText().toString().equals(&quot;\u53d1\u9001&quot;)) {               \r\n        info.performAction(AccessibilityNodeInfo.ACTION_CLICK);           \r\n       }       \r\n    } else {           \r\n        for (int i = 0; i &lt; info.getChildCount(); i++) {            \r\n           if (info.getChild(i) != null) {                     \r\n              recycle(info.getChild(i));             \r\n            }           \r\n         }      \r\n       }   \r\n    }\r\n   \r\n  @TargetApi(Build.VERSION_CODES.JELLY_BEAN)   \r\n  @Override   \r\n  public void onAccessibilityEvent(AccessibilityEvent event) {       \r\n    this.rootNodeInfo = event.getSource();       \r\n    if (rootNodeInfo == null) {           \r\n      return;      \r\n     }       \r\n    mReceiveNode = null;      \r\n    checkNodeInfo();       \r\n    \/* \u5982\u679c\u5df2\u7ecf\u63a5\u6536\u5230\u7ea2\u5305\u5e76\u4e14\u8fd8\u6ca1\u6709\u6233\u5f00 *\/      \r\n    if (mLuckyMoneyReceived &amp;&amp; (mReceiveNode != null)) {          \r\n       int size = mReceiveNode.size();          \r\n       if (size &gt; 0) {              \r\n           String id = getHongbaoText(mReceiveNode.get(size - 1));               \r\n           long now = System.currentTimeMillis();             \r\n           if (this.shouldReturn(id, now - lastFetchedTime))                     \r\n              return;              \r\n           lastFetchedHongbaoId = id;               \r\n           lastFetchedTime = now;               \r\n           AccessibilityNodeInfo cellNode = mReceiveNode.get(size - 1);                 \r\n           if (cellNode.getText().toString().equals(&quot;\u53e3\u4ee4\u7ea2\u5305\u5df2\u62c6\u5f00&quot;)) {                   \r\n              return;               \r\n           }               \r\n           cellNode.getParent().performAction(AccessibilityNodeInfo.ACTION_CLICK);           \r\n           if (cellNode.getText().toString().equals(QQ_HONG_BAO_PASSWORD)) {\r\n                 AccessibilityNodeInfo rowNode = getRootInActiveWindow();                  \r\n           if (rowNode == null) {                     \r\n              Log.e(TAG, &quot;noteInfo is\u3000null&quot;);                     \r\n              return;                   \r\n            } else {                    \r\n                 recycle(rowNode);                 \r\n            }               \r\n         }\r\n         mLuckyMoneyReceived = false;           \r\n          }      \r\n       } \r\n    }\r\n   \r\n  private void checkNodeInfo() {   \r\n    if (rootNodeInfo == null) {     \r\n        return;   \r\n    }    \r\n    \/* \u804a\u5929\u4f1a\u8bdd\u7a97\u53e3\uff0c\u904d\u5386\u8282\u70b9\u5339\u914d\u201c\u70b9\u51fb\u62c6\u5f00\u201d\uff0c\u201c\u53e3\u4ee4\u7ea2\u5305\u201d\uff0c\u201c\u70b9\u51fb\u8f93\u5165\u53e3\u4ee4\u201d *\/  \r\n    List&lt;AccessibilityNodeInfo&gt; nodes1 = this.findAccessibilityNodeInfosByTexts(this.rootNodeInfo, new String&#x5B;]{QQ_DEFAULT_CLICK_OPEN, QQ_HONG_BAO_PASSWORD, QQ_CLICK_TO_PASTE_PASSWORD, &quot;\u53d1\u9001&quot;});   \r\n    if (!nodes1.isEmpty()) {     \r\n        String nodeId = Integer.toHexString(System.identityHashCode(this.rootNodeInfo));       \r\n        if (!nodeId.equals(lastFetchedHongbaoId)) {   \r\n        mLuckyMoneyReceived = true;          \r\n        mReceiveNode = nodes1;      \r\n         }        return;   \r\n      }\r\n    }\r\n   \r\n  private String getHongbaoText(AccessibilityNodeInfo node) { \r\n      \/* \u83b7\u53d6\u7ea2\u5305\u4e0a\u7684\u6587\u672c *\/   \r\n      String content;  \r\n      try {       \r\n          AccessibilityNodeInfo i = node.getParent().getChild(0);       \r\n          content = i.getText().toString(); \r\n          } catch (NullPointerException npe) {  \r\n                 return null;   \r\n              }   \r\n          return content;\r\n    }\r\n   \r\n   private boolean shouldReturn(String id, long duration) {  \r\n       \/\/ ID\u4e3a\u7a7a   \r\n      if (id == null) return true;   \r\n      \/\/ \u540d\u79f0\u548c\u7f13\u5b58\u4e0d\u4e00\u81f4 \r\n      if (duration &lt; MAX_CACHE_TOLERANCE &amp;&amp; id.equals(lastFetchedHongbaoId)) {     \r\n          return true;  \r\n       }  \r\n      return false;\r\n    }\r\n   \r\n   private List&lt;AccessibilityNodeInfo&gt; findAccessibilityNodeInfosByTexts(AccessibilityNodeInfo nodeInfo, String&#x5B;] texts) { \r\n        for (String text : texts) {    \r\n           if (text == null) continue;     \r\n           List&lt;AccessibilityNodeInfo&gt; nodes = nodeInfo.findAccessibilityNodeInfosByText(text);    \r\n           if (!nodes.isEmpty()) {        \r\n               if (text.equals(WECHAT_OPEN_EN) &amp;&amp; !nodeInfo.findAccessibilityNodeInfosByText(WECHAT_OPENED_EN).isEmpty()) {             \r\n                    continue;        \r\n                }           \r\n                return nodes;     \r\n            } \r\n          }   \r\n        return new ArrayList&lt;&gt;();\r\n    }\r\n   \r\n    @Override\r\n    public void onInterrupt() {}\r\n}\r\n\r\n<\/pre>\n<p>QQHongbaoService\u7684\u5168\u90e8\u4ee3\u7801\u4e5f\u5728\u8fd9\u91cc\uff0c\u4ee3\u7801\u4e0d\u591a\u3002\u9996\u5148\uff0c\u5728\u8fd9\u4e2a\u670d\u52a1\u4e2d\u4e3b\u8981\u662f\u901a\u8fc7findAccessibilityNodeInfosByText\u8fd9\u4e2a\u65b9\u6cd5\u53bb\u83b7\u6211\u4eec\u9700\u8981\u7684\u8282\u70b9\uff1b\u7136\u540e\u7528performAction(AccessibilityNodeInfo.ACTION_CLICK)\u8fd9\u4e2a\u65b9\u6cd5\u53bb\u70b9\u51fb\u7ea2\u5305\u8282\u70b9\uff0c\u5173\u952e\u601d\u8def\u5927\u6982\u5c31\u662f\u8fd9\u6837\uff01\u53e6\u5916\u5982\u679c\u662f\u53e3\u4ee4\u7ea2\u5305\uff0c\u6211\u4eec\u9700\u8981\u5148\u6309\u7167\u4e0a\u9762\u7684\u6b65\u9aa4\u5c06\u7ea2\u5305\u6233\u5f00\uff0c\u7136\u540e\u901a\u8fc7performAction(AccessibilityNodeInfo.ACTION_CLICK)\u53bb\u70b9\u51fb\u8f93\u5165\u53e3\u4ee4\uff0c\u6700\u540e\u518d\u901a\u8fc7\u70b9\u51fb\u53bb\u53d1\u9001\u5373\u53ef\u5b9e\u73b0\uff01QQHongbaoService\u9700\u8981\u5728AndroidManifest.xml\u6587\u4ef6\u4e2d\u6ce8\u518c\uff0c<br \/>\n\u6ce8\u518c\u7684<application>\u8282\u70b9\u5982\u4e0b\u56fe\uff1a<\/p>\n<p><a href=\"https:\/\/www.jiandaima.com\/blog\/wp-content\/uploads\/2016\/11\/20161106214622.png\" class=\"highslide-image\" onclick=\"return hs.expand(this);\"><img decoding=\"async\" src=\"http:\/\/images.jiandaima.com\/blog\/wp-content\/uploads\/2016\/11\/20161106214622-300x204.png\" alt=\"QQ\u62a2\u7ea2\u5305\u63d2\u4ef6\u5b9e\u73b0\uff0c\u5b89\u5353\u6e90\u7801\uff0c\u4ee5\u53ca\u8be6\u7ec6\u5206\u6790,1.\u62a2QQ\u53e3\u4ee4\u7ea2\u5305,2.\u62a2QQ\u62fc\u624b\u6c14\u7ea2\u5305,3.\u62a2QQ\u597d\u53cb\u53d1\u9001\u7684\u7ea2\u5305\uff1a\"  class=\"aligncenter size-medium wp-image-751\" \/><\/a><\/p>\n<p>\u603b\u4f53\u6765\u770b\uff0c\u53ea\u662f\u5c06\u5fae\u4fe1\u62a2\u7ea2\u5305\u7684\u4ee3\u7801\u505a\u4e86\u5c11\u91cf\u7684\u4fee\u6539\uff0c\u5728\u8fd9\u91cc\u8981\u611f\u8c22\u5404\u4f4d\u5927\u795e\u5bf9\u5fae\u4fe1\u62a2\u7ea2\u5305\u6e90\u7801\u7684\u8d21\u732e\uff01\u6700\u540e\u4e5f\u5e0c\u671b\u8fd9\u7bc7\u6587\u7ae0\u80fd\u7ed9\u5927\u5bb6\u6709\u6240\u5e2e\u52a9\uff0c\u5728\u62a2\u7ea2\u5305\u5927\u6218\u4e2d\u8650\u6b7b\u5355\u8eab\u72d7\uff0c\u518d\u4e5f\u4e0d\u6015\u4f6020\u5e74\u7684\u5355\u8eab\u624b\u901f\u4e86\uff01\uff01\uff01<br \/>\n\u7ee7\u7eed\u66f4\u65b0<br \/>\n\u6e90\u7801\u4e0b\u8f7d\u5730\u5740\uff1a<\/p>\n","raw":"","protected":false},"excerpt":{"rendered":"<p>QQ\u62a2\u7ea2\u5305\u63d2\u4ef6\u5b9e\u73b0\uff0c\u5b89\u5353\u6e90\u7801\uff0c\u4ee5\u53ca\u8be6\u7ec6\u5206\u6790,1.\u62a2QQ\u53e3\u4ee4\u7ea2\u5305,2.\u62a2QQ\u62fc\u624b\u6c14\u7ea2\u5305,3.\u62a2QQ\u597d\u53cb\u53d1\u9001\u7684\u7ea2\u5305,androidqq\u62a2\u7ea2\u5305\u6e90\u7801\u6361\u4ee3\u7801\u8bba\u575b\u6574\u7406<\/p>\n","protected":false},"author":1,"featured_media":522,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[6],"tags":[18,245,21,225],"class_list":["post-748","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-application-source-code","tag-android","tag-androidqq","tag-app","tag-qq"],"post_thumbnail_image":"http:\/\/images.jiandaima.com\/blog\/wp-content\/uploads\/2016\/05\/64022-3.png?imageView2\/1\/w\/300\/h\/300#","content_first_image":"http:\/\/images.jiandaima.com\/blog\/wp-content\/uploads\/2016\/11\/20161106214622.png","post_medium_image_300":"http:\/\/images.jiandaima.com\/blog\/wp-content\/uploads\/2016\/05\/64022-3.png?imageView2\/1\/w\/600\/h\/356#","post_thumbnail_image_624":"http:\/\/images.jiandaima.com\/blog\/wp-content\/uploads\/2016\/05\/64022-3.png","post_frist_image":"http:\/\/images.jiandaima.com\/blog\/wp-content\/uploads\/2016\/11\/20161106214622.png","post_medium_image":"http:\/\/images.jiandaima.com\/blog\/wp-content\/uploads\/2016\/05\/64022-3.png?imageView2\/1\/w\/600\/h\/356#","post_large_image":"http:\/\/images.jiandaima.com\/blog\/wp-content\/uploads\/2016\/05\/64022-3.png","post_full_image":"http:\/\/images.jiandaima.com\/blog\/wp-content\/uploads\/2016\/05\/64022-3.png","post_all_images":[{"imagesurl":"http:\/\/upload-images.jianshu.io\/upload_images\/1440183-6788c271c29e0d39.gif?imageMogr2\/auto-orient\/strip","id":"image0"},{"imagesurl":"http:\/\/upload-images.jianshu.io\/upload_images\/1440183-f6a3dc7fabbd2d3b.gif?imageMogr2\/auto-orient\/strip","id":"image1"},{"imagesurl":"http:\/\/upload-images.jianshu.io\/upload_images\/1440183-936802d3cea53f84.gif?imageMogr2\/auto-orient\/strip","id":"image2"},{"imagesurl":"http:\/\/images.jiandaima.com\/blog\/wp-content\/uploads\/2016\/11\/20161106214622-300x204.png","id":"image3"}],"videoAdId":"","listAd":"0","listAdId":"","listAdEvery":5,"total_comments":0,"category_name":"\u5e94\u7528\u7a0b\u5e8f\u6e90\u7801","post_date":"2016-11-06","like_count":"0","praiseWord":"\u9f13\u52b1","copyright_state":"","excitationAd":"0","rewardedVideoAdId":"","detailAdId":"","detailAd":"0","enterpriseMinapp":"0","audios":[],"postImageUrl":"http:\/\/images.jiandaima.com\/blog\/wp-content\/uploads\/2020\/02\/img_5e44112722964.png","avatarurls":[],"related_posts":[],"pageviews":975,"next_post_id":767,"next_post_title":"\u3010C#\u5c0f\u5de5\u5177\u3011\u767e\u5ea6\u7f51\u76d8\u4e0d\u9650\u901f\u4e0b\u8f7d\u5de5\u5177\u3002\u6e90\u7801\u4e0b\u8f7d","previous_post_id":678,"previous_post_title":"\u5fae\u4fe1\u5e94\u7528\u53f7.\u5fae\u4fe1\u5c0f\u7a0b\u5e8f\u6e90\u7801\u4e4bGank\u5934\u6761app\u6e90\u7801","_links":{"self":[{"href":"http:\/\/www.jiandaima.com\/blog\/wp-json\/wp\/v2\/posts\/748","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.jiandaima.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.jiandaima.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.jiandaima.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.jiandaima.com\/blog\/wp-json\/wp\/v2\/comments?post=748"}],"version-history":[{"count":0,"href":"http:\/\/www.jiandaima.com\/blog\/wp-json\/wp\/v2\/posts\/748\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/www.jiandaima.com\/blog\/wp-json\/wp\/v2\/media\/522"}],"wp:attachment":[{"href":"http:\/\/www.jiandaima.com\/blog\/wp-json\/wp\/v2\/media?parent=748"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.jiandaima.com\/blog\/wp-json\/wp\/v2\/categories?post=748"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.jiandaima.com\/blog\/wp-json\/wp\/v2\/tags?post=748"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}